CS240: Advanced Topics in Operating Systems
Spring 2008 -- Dawson Engler
Announcements
Quiz 3 (posted: June 9)
- Quiz 3 is now available here.
More Quiz Info (posted: June 2)
- Quiz 2 can be found here and the solutions are here.
- Adam will be holding office hours in Gates 420 on 6/3 from 11 am - 12 pm.
Quiz Dates (posted: May 7, updated: May 29)
- Quiz 2 will be held in class on Wednesday, May 28. Open notes. Includes material since Quiz 1, up to and including 5/23.
- Adam will be holding office hours in Gates 420 on 5/27 from 4-5 pm.
- Quiz 3 will be held in class, Wednesday, June 4. It will be open notes and cumulative.
Quiz 1 Solutions (posted: May 5)
- Quiz 1 solutions are now available here.
Quiz 1 (posted: April 30)
- Quiz 1 is now available here.
Quiz 1 Information (posted: April 27, updated: April 28)
- Quiz 1 will be on Wednesday, April 30 (in class). It will cover the papers
covered in class up to, and including, April 28.
- There are examples of old quizes on the course websites from
previous quarters
- Adam will be holding extra office hours on Monday, April 28, from 4-6 pm
in Gates 420.
- SCPD students will receive the exam electronically via email at
the moment we hand the exam out in class. SCPD students should
either email their answers or return them via SCPD. Exams via SCPD
must be returned before class on Monday, May 5th. Please do
not fax them. Fax comes out garbled and hard to read too
often.
Class Abstract
Students will study advanced operating system topics and be exposed
to recent developments in operating systems research. This course involves
readings and lectures on classic and new papers. Topics: virtual memory
management, synchronization and communication, file systems, protection
and security, operating system structure and extension techniques, fault
tolerance, and history and experience of systems programming.
Class Times
- MWF 2:15PM - 3:05PM in
Skilling 193
Course Staff
Instructor
- Dawson Engler
- E-mail: engler at csl
- Telephone: (650) 723-0762
- Office: 314 Gates
- Office hours: By appointment
Teaching Assistant
- Adam Oliner
- E-mail: oliner at cs
- Office: 420 Gates
- Office hours: Immediately after class or by appointment.
- Extra office hours before exams
Course Secretary
- Judy Polenta
- E-mail: jpolenta at cs
- Telephone: (650) 723-3380
- Office: 279 Gates
Prerequisites
The prerequisite for this class is CS 140 or the equivalent. It is
necessary to have this background before taking the class, as
we'll read a lot papers quickly without much time for catching up
on the basics. The course assumes an understanding of topics in
operating systems such as synchronization, virtual memory management,
scheduling, and file systems.
The other requirement is that students be able to send and receive email,
access the class newsgroup, access the class web page, and download and
print postscript from the class web page. There will be very few
handouts in the course, since most of the notes and other materials will
be available only on the class web page.
Course Organization and Workload
The course consists of lectures, readings, and three exams.
The two
most important things to know about the class: (1) the main goal is to
have interesting in-class discussions and (2) we recommend you read each
paper at least three times: twice very carefully, the last time focusing
on the hard parts. For any artifact the paper describes
you should draw a picture. This should all be done
more than a day in advance so that it sinks in.
Most of the work in this course consists of reading journal and
conference papers. We will cover one paper for each class meeting.
This class will be primarily discussion based (rather than organized
around lectures). Active discussion will (hopefully) give you a
non-trivial understanding of the material. The only way this approach
can work is if you read the papers carefully. To encourage this, 40%
of your class grade will come from class participation: this includes
talking in class, as well as how you do on pop quizzes and (possibly)
pop presentations. (Given the realities of geography remote SITN
students can get their entire grade from exams.)
Class time will not be used to rehash the material
in the papers. Instead, it will be used to highlight the important
points and discuss some of the more interesting features. There will
be as much as 10-15 hours of reading per week. Do not take this
course unless you are willing and able to do a lot of reading.
Grading Policy
The class is graded on a rough curve. 40% of your grade will come
from class participation, the other 60% will be based on scores on three
in-class exams. SCPD students will be graded just on exams (and any
homeworks).
Grading FAQ
-
Q: Will SCPD and non-SCPD students be graded on the same exam curve?
A: Yes.
-
Q: Is class participation based solely on attendance?
A: No. Attendance is a necessary but not sufficient
condition for good class participation.
As far as attendance is concerned, the general policy is that
a student will automatically receive a deduction of one letter
grade for missing more than 3 lectures. We will
not take official roll during lecture, but because we make the
effort to know everyone in the class we will notice if a
student is frequently absent. If you are a non-SCPD student and
have any concerns about not being able to regularly attend class
(e.g., you will have to miss several classes
during the quarter) please discuss this as soon as possible with
the course staff.
Beyond attendance, we evaluate class participation largely by
observing how prepared students are to discuss the covered paper
when they come to class. This is not a trivial requirement
because we expect papers to have been read thoroughly prior to
lecture.
Exams
There will be three exams. They will be open book (but
not open laptop). The final exam is cumulative. Sample exams with
solutions are available on sites from previous years.
Contacting the staff
For general questions please first post to the class newsgroup,
su.class.cs240 --- if you have a question, other people
probably have the same one (or should).
All course announcements will be put on to the class web page. The
news group is a good place to advertise for study groups, ask
questions of other students, etc.
For more private matters please send email to
cs240-spr0708-staff@lists.stanford.edu and prefix the subject line
with "CS240" for a prompt response. Announcements from the
staff will be sent via the cs240-spr0708-students@lists.stanford.edu
mailing list to which any registered student will automatically be
added.
Course Outline
This course makes no attempt to cover all the interesting topics in
operating systems. Instead, we will cover a few topics in depth. The
course is divided into the following general topic areas:
- Virtual memory management
- Discussions of virtual memory management
implementations and recent work in virtual memory for multiprocessors, NUMA
machines, large virtual address spaces, and other topics.
- Synchronization and communication
- Discussions of synchronization with an emphasis on
monitors. Communication using remote procedure call.
- File systems
- Discussions of file system interfaces and disk
storage management techniques.
- Protection and security
- Discussions of data security and authentication.
- Extensions and fault tolerance
- Discussions of mechanisms for implementing OS
services at user level, OS structure and performance, reliability and
availability of OS services.
- History and experience
- Historically important papers and experience reports by senior
researchers in the field.
Tentative Reading List
There is no textbook for this course. The course is based on a collection
of journal and conference papers that describe the history and state
of the art in operating systems. Papers will be discussed in class in
approximately the order that they appear on the
reading list below. You must read the papers before
class.
Category/Date |
Title |
Author(s) |
(W 4/2) |
The Rise of
"Worse is Better" |
Richard Gabriel |
(F 4/4) |
Eraser: A Dynamic Data Race
Detector for Multithreaded Programs |
Savage, Burrows, Nelson, Sobalvarro, and Anderson |
(M 4/7) |
Experience
with Processes and Monitors in Mesa |
Butler Lampson |
(W 4/9) |
Threads cannot be
implemented as a library |
Hans-J. Boehm |
(F 4/11) |
Why Threads Are A Bad Idea
Why Events Are A Bad Idea
Cooperative Task Management
without Manual Stack Management |
Ousterhout, von Behren, and Adya |
(M 4/14) |
Borrowed-Virtual-Time (BVT) scheduling:
supporting latency-sensitive threads in a general-purpose
scheduler |
Duda and Cheriton |
(W 4/16) |
Virtual Memory Management in the
VAX/VMS Operating System |
Levy and Lipman |
(F 4/18) |
Practical, Transparent,
Operating System Support for Superpages |
Navarro, Iyer, Druschel, and Cox |
(M 4/21) |
A Comparison of Software and
Hardware Techniques for x86 Virtualization
| Adams and Ageson |
(W 4/23) |
Memory Resource
Management in VMware ESX Server |
Waldspurger |
(F 4/25) |
Review Day |
(M 4/28) |
Guest Speaker: Butler Lampson on Hints for Computer System Design |
(W 4/30) |
Quiz 1 (Midterm): in-class, open notes |
(F 5/2) |
Enhancing Server
Availability and Security Through Failure-Oblivious Computing |
Rinard, Cadar, Dumitran, Roy, Leu, Beebee |
(M 5/5) |
Improving the
Reliability of Commodity Operating Systems [Nooks] |
Swift, Bershad, Levy |
(W 5/7) |
The Design and
Implementation of a Log-Structured File System |
Rosenblum and Ousterhout |
(F 5/9) |
Rethink the Sync
(slides)
Disks from the
Perspective of a File System |
Nightingale, Veeraraghavan, Chen, Flinn, and McKusick |
(M 5/12) |
eXplode: a Lightweight, General System
for Finding Serious Storage System Errors (slides) |
Yang, Sar, and Engler |
(W 5/14) |
Guest Speaker: Robert O'Callahan on Inside Firefox (background reading here and here) |
(F 5/16) |
Eliminating Receive
Livelock in an Interrupt-Driven Kernel |
Mogul and Ramakrishnan |
(M 5/19) |
Design and Implementation of
the SUN Network Filesystem |
Sandberg et al. |
(W 5/21) |
Guest Speaker: Dan Scales on Software Engineering at VMWare [pdf]
Also, read Leases: An Efficient
Fault-Tolerant Mechanism for Distributed File Cache Consistency |
Gray and Cheriton |
(F 5/23) |
A Low-Bandwidth Network File System |
Muthitacharoen, Chen, and Mazieres |
(W 5/28) |
Quiz 2: in-class, open notes |
(F 5/30) |
Secure Web Applications via Automatic Partitioning
Slides on DAC vs. Mac |
Chong, Liu, Myers et al. |
(M 6/2) |
Hints for Computer System Design (sort of review) |
Lampson |
(W 6/4) |
Quiz 3 (Final): IN-CLASS, open notes, cumulative |
Webpage maintained by Adam Oliner