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.
The prerequisite for this class is CS140 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 course consists of lectures, readings, labs, two exams, and a final project. 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 SCPD 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.
40% of your grade will come from class participation, 30% from labs and a final project, and the final 30% will be based on scores on two in-class exams. The two exams will be weighted equally, each contributing 15% to the final grade. SCPD students will be graded just on exams, labs, and a final project such that 50% of the grade comes from exams and the other 50% from labs and a final project. Note: The grading policy is subject to change.
Attendance is a necessary but not sufficient condition for good class participation. 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.
There will be two 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.
The lab component of the course is a new addition to CS240. The intent of the labs is to (1) practice advanced operating systems concepts and (2) add new tools to your systems programming toolset.
The final project will be designed to give you flexibility to creatively explore ideas and concepts taught in class. More details on the final project will be made available at a later time.
For general questions please first post to the class Piazza site. If you have a question, other people probably have the same one (or should). Piazza is also a good place to advertise for study groups, ask questions to other students, etc. For more private matters you can post a private question on Piazza (visible only to the instructors) or email the course staff directly.
Announcements will be posted on the home page and on Piazza.
Tuesdays and Thursdays
4:15pm - 5:30pm
Mondays and Wednesdays
4:00pm - 6:00pm
Gates 415 on Mondays
Gates 288 on Wednesdays
Mary Jane Swenson