here

In The Name of God, The Merciful, The compassionate
Undergraduate Course – Computer Science
Operating System (OS)
Department of Computer Science
Sharif University of Technology
Spring 2015 – CS 22884
Instructor: Hamidreza Mahyar
Class Hours & Location: Saturdays & Mondays; 15:00 – 16:30
Office: CE Department #815
Phone: 6616-6678
Email: [email protected]
URL: http://ce.sharif.edu/~hmahyar
TAs:
Sardar Bonabi (Head)
Email: [email protected]
Amin Khosroshahi (Head)
Email: [email protected]
Amir Seyvani
Email: [email protected]
Sharare Ezzatnejad
Email: [email protected]
Nafe Moradkhani
Email: [email protected]
Course Website: http://ce.sharif.edu/~hmahyar/OperatingSystem-Spring2015/OS.html
Course Objectives: Operating systems are an essential part of any computer system. Similarly, a course
on operating systems is an essential part of any computer science education. This field is undergoing
rapid change, as computers are now prevalent in virtually every arena of day-to-day life--from embedded
devices in automobiles through the most sophisticated planning tools for governments and multinational
firms. Yet the fundamental concepts remain fairly clear, and it is on these that we base this course.
Course Textbook:
Operating System Concepts, Ninth Edition, John Wiley & Sons, Inc., By:
-
Avi Silberschatz
Peter Baer Galvin
Greg Gagne
Grading: Based on Homework, Critical Reading, Project, Mid-Term and Final Exams. The grade will be
determined by:






Homework (9 series): Each one 0.8 in total 7 (Points)
Projects: 2 (Points)
Quizzes: 1 (Point)
Mid-Term Exam 1: 2 (Points)
Mid-Term Exam 2: 2 (Points)
Final Exam: 6 (Points)
Total: 20 (Points)
Course Outline:












Chapter 1, Introduction, includes updated coverage of multiprocessor and multicore systems, as
well as a new section on kernel data structures. Additionally, the coverage of computing
environments now includes mobile systems and cloud computing. We also have incorporated an
overview of real-time systems.
Chapter 2, Operating-System Structures, provides new coverage of user interfaces for mobile
devices, including discussions of iOS and Android, and expanded coverage of Mac OS X as a
type of hybrid system.
Chapter 3, Processes, now includes coverage of multitasking in mobile operating systems,
support for the multiprocess model in Google's Chrome web browser, and zombie and orphan
processes in UNIX.
Chapter 4, Threads, supplies expanded coverage of parallelism and Amdahl's law. It also
provides a new section on implicit threading, including OpenMP and Apple's Grand Central
Dispatch.
Chapter 5, Process Synchronization, adds a new section on mutex locks as well as coverage of
synchronization using OpenMP, as well as functional languages.
Chapter 6, CPU Scheduling, contains new coverage of the Linux CFS scheduler and Windows
user-mode scheduling. Coverage of real-time scheduling algorithms has also been integrated into
this chapter.
Chapter 7, Deadlocks.
Chapter 8, Main Memory, includes new coverage of swapping on mobile systems and Intel 32and 64-bit architectures. A new section discusses ARM architecture.
Chapter 9, Virtual Memory, updates kernel memory management to include the Linux SLUB
and SLOB memory allocators.
Chapter 10, Mass-Storage Structure, adds coverage of solid-state disks.
Chapter 11, File-System Interface, is updated with information about current technologies.
Chapter 12, File-System Implementation, is updated with coverage of current technologies.
Homework Problems:
Homework problems will be handed out on Sundays and will be due based on the deadline, before the
beginning of lectures. The problems will cover the following week materials so do not expect to cover the
whole problem set related materials right after the release. Course policy for late submission is mentioned
below:




70% of the whole point for delivery up to one day after the deadline.
30% of the whole point for delivery up to three days after the deadline.
20% of the whole point for delivery up to one week after the deadline.
It’s not acceptable to submit after one week.
Statement on Collaboration, Academic Honesty, and Plagiarism:
We encourage working together whenever possible on; homework, working problems in tutorials, and
discussing and interpreting reading assignments. Talking about the course material is a great way to learn.
Regarding homework, the following is a fruitful (and acceptable) form of collaboration; discuss with your
classmates possible approaches to solving the problems, and then have each one fill in the details and
write her/his own solution independently. An unacceptable form of dealing with homework is to copy a
solution that someone else has written. We discourage, but do not forbid, use of materials from prior
terms that students may have access to. Furthermore, at the time that you are actually writing up your
solutions, these materials must be set aside; copy-editing from other’s work is not acceptable. At the top
of each homework you turn in, we expect you to briefly list all sources of information you used, except
known course materials like Text Book, Lectures, etc. A brief note such as “Did homework with ABC
and ABD in study group” or “Looked at old solution for Problem 4” would be sufficient. Besides the
morality issues, it will help TAs on grading your hand outs. There will be a zero tolerance policy for
Cheating/Copying HW’s. The first time you are caught, you will receive a zero for the task at hand. If you
are caught for a second time, you will fail the course. In general, we expect students to adhere to basic,
common sense concepts of academic honesty. Presenting another's work as if it was your own, or
cheating in exams will not be tolerated.
Tentative Course Outline:
Session
Date
No.
1
93.11.11
2
93.11.13
3
93.11.18
Chapter
Section
Topic
CHAPTER 1:
INTRODUCTION
1.1 – 1.2
WHAT OPERATING SYSTEMS DO,
COMPUTER-SYSTEM ORGANIZATION
1.3 – 1.8
COMPUTER-SYSTEM
ARCHITECTURE,OPERATING-SYSTEM
STRUCTURE,OPERATING-SYSTEM
OPERATIONS,PROCESS
MANAGEMENT,MEMORY
MANAGEMENT,STORAGE MANAGEMENT
1.9 – 1.12
PROTECTION AND SECURITY,KERNEL DATA
STRUCTURES,COMPUTING ENVIRONMENTS,
OPEN-SOURCE OPERATING SYSTEMS
CHAPTER 1:
INTRODUCTION
CHAPTER 1:
INTRODUCTION
HOMEWORK 1
4
5
93.11.20
CHAPTER 2:
OPERATINGSYSTEM
STRUCTURES
93.11.25
CHAPTER 2:
OPERATINGSYSTEM
STRUCTURES
2.1 – 2.4
OPERATING SYSTEM SERVICES, USER
OPERATING SYSTEM INTERFACE,SYSTEM
CALLS,TYPES OF SYSTEM CALLS
2.5 – 2.10
SYSTEM PROGRAMS, OPERATING SYSTEM
DESIGN AND IMPLEMENTATION,
OPERATING SYSTEM
STRUCTURE,OPERATING SYSTEM
DEBUGGING,OPERATING SYSTEM
GENERATION,SYSTEM BOOT
HOMEWORK 2
6
93.11.27
CHAPTER3:
PROCESSES
3.1 – 3.2
PROCESS CONCEPT,PROCESS SCHEDULING
7
93.12.2
CHAPTER 3:
PROCESSES
3.3 – 3.4
OPERATIONS ON PROCESSES,INTERPROCESS
COMMUNICATION
8
93.12.4
CHAPTER 3:
PROCESSES
3.5 – 3.6
EXAMPLES OF IPC SYSTEMS,
COMMUNICATION IN CLIENT SERVER
SYSTEMS
HOMEWORK 3
9
93.12.9
CHAPTER 4:
THREADS
4.1 – 4.4
OVERVIEW,MULTICORE
PROGRAMMING,MULTITHREADING
MODELS,THREAD LIBRARIES
10
93.12.11
CHAPTER4:
THREADS
4.5 – 4.7
IMPLICIT THREADING,THREADING
ISSUES,OPERATING SYSTEM EXAMPLES
HOMEWORK 4
11
93.12.16
CHAPTER5:
PROCESS
5.1 – 5.3
BACKGROUND,THE CRITICAL-SECTION
PROBLEM,PETERSON’ S SOLUTION
5.4 – 5.6
SYNCHRONIZATION HARDWARE, MUTEX
LOCKS, SEMAPHORES
SYNCHRONIZATION
12
93.12.18
CHAPTER 5:
PROCESS
SYNCHRONIZATION
MIDTERM 1: 93.12.21
CHAPTERS 1, 2, 3, 4
13
93.12.23
CHAPTER 5:
PROCESS
5.7
CLASSIC PROBLEMS OF SYNCHRONIZATION
5.8 – 5.10
MONITORS, SYNCHRONIZATION EXAMPLES,
ALTERNATIVE APPROACHES
SYNCHRONIZATION
14
93.12.25
CHAPTER 5:
PROCESS
SYNCHRONIZATION
HOMEWORK 5
15
94.1.15
CHAPTER6: CPU
SCHEDULING
6.1 – 6.3
BASIC CONCEPTS, SCHEDULING CRITERIA,
SCHEDULING ALGORITHMS
16
94.1.17
CHAPTER 6: CPU
SCHEDULING
6.3 – 6.5
SCHEDULING ALGORITHMS (CONT.),
THREAD SCHEDULING, MULTIPLE
PROCESSOR SCHEDULING
17
94.1.22
CHAPTER 6: CPU
SCHEDULING
6.6 – 6.8
REAL-TIME CPU SCHEDULING, OPERATING
SYSTEMS EXAMPLES, ALGORITHM
EVALUATION
HOMEWORK 6
18
94.1.24
CHAPTER7:
DEADLOCKS
7.1 – 7.2
SYSTEM MODEL, DEADLOCK
CHARACTERIZATION
19
94.1.29
CHAPTER 7:
DEADLOCKS
7.3 – 7.5
METHODS FOR HANDLING DEADLOCKS,
DEADLOCK PREVENTION, DEADLOCK
AVOIDANCE
20
94.1.31
CHAPTER 7:
DEADLOCKS
7.6 – 7.7
DEADLOCK DETECTION, RECOVERY FROM
DEADLOCK
HOMEWORK 7
21
94.2.5
CHAPTER8: MAIN
MEMORY
8.1 – 8.2
BACKGROUND, SWAPPING
22
94.2.7
CHAPTER 8: MAIN
MEMORY
8.3 – 8.4
CONTIGUOUS MEMORY ALLOCATION,
SEGMENTATION
94.2.12
CHAPTER 8: MAIN
MEMORY
8.4
PAGING
94.2.14
CHAPTER 8: MAIN
MEMORY
8.5 – 8.7
STRUCTURE OF THE PAGE TABLE,
EXAMPLE: THE INTEL 32 AND 64-BIT
ARCHITECTURES, EXAMPLE: ARM
ARCHITECTURE
23
24
HOMEWORK 8
MIDTERM 2: 94.2.17
CHAPTERS 5, 6, 7, 8
25
94.2.19
CHAPTER 9:
VIRTUAL MEMORY
9.1 – 9.2
BACKGROUND, DEMAND PAGING
26
94.2.21
CHAPTER 9:
VIRTUAL MEMORY
9.3 – 9.4
COPY-ON-WRITE, PAGE REPLACEMENT
27
94.2.26
CHAPTER 9:
VIRTUAL MEMORY
9.5 – 9.7
ALLOCATION OF FRAMES, THRASHING,
MEMORY-MAPPED FILES
28
94.2.28
CHAPTER 9:
VIRTUAL MEMORY
9.8 – 9.10
ALLOCATING KERNEL MEMORY, OTHER
CONSIDERATIONS, OPERATING-SYSTEM
EXAMPLES
HOMEWORK 9
29
94.3.2
RESERVE
–
–
30
94.3.4
RESERVE
–
–