198:416 sections 09, 10 -- CS 416: Operating System Design,
Spring 2009
Lecture: TTh 5:00pm-6:20pm at SEC-208, Busch Campus
Recitations:
Section 09 -- T 3:35pm-4:30pm at SEC-205, Busch Campus
Section 10 -- Th 3:35pm-4:30pm at ARC-204, Busch Campus
Instructor: Ricardo Bianchini
Email: ricardob@cs.rutgers.edu
Office Hours: by appointment over email, CoRE 307.
TA: Bill Katsak
Email: wkatsak@cs.rutgers.edu
Office Hours:
T 12:30pm-1:30pm at Hill 357
Th 10:00am-11:00am at Hill 357
TA: Nishat Islam
Email: nislam@cs.rutgers.edu
Office Hours:
TTh 2:00pm-3:00pm at Hill 486
Announcements
- 04/16 -- The final exam will take place on May 8 from noon to 3pm
in SEC 208.
- 03/16 -- Sample midterm.
- 03/03 -- The midterm will take place on 3/24 during the lecture
time at our regular classroom.
- 03/03 -- No class on 3/10.
- 02/19 -- Added a new set of lecture notes about parallel
computing.
- 02/05 -- The first assignment is now on-line
here.
Due date 02/25. Late hand-ins will not be accepted.
- 01/23 -- For the programming assignments, please make sure you
have accounts on the iLab machines. LCSR has a Web page for you to
create your account. You can find it here.
- 01/22 -- Please note that there was a mistake on this page and
in my lecture notes: CS 314 is no longer accepted as a pre-requisite
to CS 416. I have now fixed things at both places. I apologize for
the confusion.
- 01/05 -- 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. Also, please write your email address, your
Rutgers ID, and the section you are interested in joining on your
transcript. 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 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" (eighth edition), John Wiley and Sons, Inc., 2008
(ISBN 978-0-470-12872-5)
- 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)
-
Synchronization (ppt,ps)
Chapters 6 (except 6.9) and 7
-
(Short) Introduction to parallel processing (ppt,ps)
-
Processor scheduling (ppt,ps)
Chapter 5 (except 5.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 (12.1-12.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.8 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.