198:416 sections 01, 02 -- CS 416: Operating System Design,
Spring 2008
Lecture: MW 3:20pm-4:40pm at ARC-105, Busch Campus
Recitations:
Section 01 -- W 12:15pm-1:10pm at SEC-220, Busch Campus
Section 02 -- W 1:55pm-2:50pm at ARC-206, Busch Campus
Instructor: Ricardo Bianchini
Email: ricardob@cs.rutgers.edu
Office Hours: by appointment over email, CoRE 307.
TA: Rekha Bachwani
Email: rbachwan@cs.rutgers.edu
Office Hours: Tuesdays 1:00pm-3:00pm
TA: Ana Paula Centeno
Email: anapaula@cs.rutgers.edu
Office Hours: Mondays 10:00am-noon
Announcements
- 05/04 -- The distributed systems lecture has been slightly modified.
- 04/23 -- Lecture on 4/28 (Monday) is cancelled.
- 04/23 -- The distributed systems lecture has been slightly modified.
- 04/16 -- The distributed systems lecture has been slightly modified.
- 04/08 -- Our final exam will be on
May 14 from noon to 3pm at ARC-105. Closed book, closed notes.
Please bring a photo id.
- 04/06 -- The file system lecture has been slightly modified.
- 04/02 -- The third assignment is now on-line
here.
Due date 04/29. Late hand-ins will not be accepted.
- 04/02 -- The file system lecture has been slightly modified.
- 03/31 -- The I/O and disk lectures have been slightly modified.
- 03/26 -- The I/O lecture has been slightly modified.
- 03/23 -- The memory management lecture has been slightly modified.
- 03/09 -- Slightly modified the review lecture.
- 02/29 -- The second assignment is now on-line
here.
Due date 03/30. Late hand-ins will not be accepted.
- 02/28 -- The midterm exam has been rescheduled to March 12 during
the class time. Closed book, closed notes. Please bring a photo id.
- 02/26 -- The synchronization lecture has been slightly modified.
- 02/25 -- The synchronization lecture has been heavily modified.
- 02/25 -- Sample midterm.
- 02/20 -- CPU scheduling and synchronization lectures have been modified.
-
02/13 -- Midterm exam will take place on March 10 during
the class time. Closed book, closed notes. Please bring a photo id.
- 02/13 -- CPU scheduling lecture has been modified.
- 02/10 -- Threads lecture has been modified.
- 02/06 -- The first assignment is now on-line
here.
Due date 02/26. Late hand-ins will not be accepted.
- 02/05 -- Processes lecture has been modified.
- 01/29 -- Introductory lecture notes have been modified.
- 01/23 -- The recitations will only start next week.
- 01/03 -- If you are interested in a special permission for one
of my sections, please bring a copy of your transcript and a photo ID
to the first lecture. The priority will be assigned according to the
following categories. (Students in lower-numbered categories have
higher priority.) 1 - Students with 105 credits or more; 2 - Students
in CS major not repeating this course; 3 - Students in ECE major not
repeating this course; 4 - Students in CS major repeating this course;
5 - Students in ECE major repeating this course; 6 - Other students.
Course Overview
CS 416 is a senior undergraduate course in operating systems. We will
cover the basic concepts in operating systems, such as processes,
threads, virtual memory, file systems, and communication protocols.
If time permits, we will also cover a few interesting research topics,
such as system support for scalable network servers.
For the programming assignments, we will be using either C or C++.
This course is based on Rich Martin and Thu Nguyen's CS 416 course.
Pre-requisites
Students must have taken an undergraduate course in computer
architecture (CS 211 or ECE 331) and an undergraduate course in
software design/programming (CS 113 or CS 314 or ECE 252). The
programming assignments require good programming skills and a lot of
time and effort. Note that these requirements
are very serious; you will not be able to keep up with this course's
load, if you don't have the suggested background, programming skills,
and time. Even if you do have the background and the skills, the
course is very heavy on reading and programming assignments, so come
very motivated!
Course Material
- Text book: Silberschatz, Galvin, and Gagne. "Operating System
Concepts" (seventh edition), John Wiley and Sons, Inc., 2004
- Web support for text book
Evaluation
- 30% midterm
- 30% homeworks and programming assignments
- 40% final exam
Programming Assignments
Lecture Notes (will be changing slightly in the next few days)
-
Introduction (ppt,ps)
Chapters 1 and 2 (2.1-2.8)
-
Architecture refresher (ppt,ps)
-
Processes (ppt,ps)
Chapter 3 (except 3.6)
-
Threads (ppt,ps)
Chapter 4 (except 4.4)
-
Processor scheduling (ppt,ps)
Chapter 5 (except 5.7)
-
Synchronization (ppt,ps)
Chapters 6 (except 6.8) and 7
-
Virtual memory (ppt,ps)
Chapters 8 and 9
-
Review (ppt,ps)
- Midterm
-
Answers to midterm
-
I/O (ppt,ps)
Chapter 13 (13.1-13.5)
-
Disk (ppt,ps)
Chapter 12 (14.1-14.8)
-
File Systems (ppt,ps)
Chapters 10 and 11 (11.1-11.7)
-
Support for Distributed Systems (ppt,ps)
Chapters 16, 17, 18, and 11 (11.9 only)
-
Review (ppt,ps)
- Final
Cheating Policy
Exams and written homeworks in CS 416 must be strictly individual
work. Programming assignments will be done in groups of 3 or 4
students. Collaboration with other groups on programming assignments
is encouraged at the level of ideas. Feel free to ask each other
questions, brainstorm on algorithms, or work together at a blackboard.
You should not, however, copy the actual code
for programming assignments, or copy the wording for written
homeworks. This will be considered cheating and will be punished
severely! For more details on the CS department's cheating
policy, please go to this
page.