General Information


About This Course

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 include 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.

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.

  • Concurrent Execution: threads, event systems, async/sync I/O, etc.
  • Memory Management: virtual memory, NUMA machines, memory allocators, etc.
  • Scalability: multicore processing, locking, lock-free data structures, etc.
  • File Systems: file system interfaces, networked file systems, etc.
  • OS Architecture: the structure and design of an operating system
  • Virtualization: machine virtualization, binary instrumentation, etc.
  • Security: data security and integrity, authentication, authorization, etc.
  • History/Experience: historically important papers and experience reports

Prerequisites

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.

Course Organization and Workload

The course consists of prerecorded lectures, readings, reading questions, and two exams, and two labs. There is a also a discussion section/office hours during the normal class period. It is optional but you are encouraged to come and discuss the papers. The two most important things to know about the class: (1) the main goal is to have interesting discussions (either in discussion section or on google groups) and (2) we recommend you read each paper at least two times: once very carefully, then once more, 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. 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 to 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

Your grade will be a function of your class ranking and where we set the thresholds for letter grades. The class is graded on a rough curve. Your class ranking will be based 60% on the in class midterm and cumulative final, 20% on reading questions, and 20% on the labs. Our decision on grade thresholds will factor in class participation

Reading Questions

With some exceptions, each paper will be accompanied with a question that you are required to respond to. The question will be posted on the course website along with the paper. Students should submit their answers as a PDF to the Gradescope

Responses should be short and pithy. Our goal is to get you to think deeply about the paper, not to test you. You won’t be graded on the correctness of your answer but simply on whether you attempted to answer the question at all with some understanding.

Exams

There will be two exams. They will be open book (class materials including papers) but no googling. The final exam is cumulative. Sample exams with solutions are available on sites from previous years.

Due Dates

Reading questions are due the midnight after the corresponding discussion section. Responses will be accepted until one week after the original deadline. No extensions are possible, but missing only one or two questions should minimally impact your final grade.

Contacting the Course Staff

You may email the staff directly at cs240-spr21-staff@lists.stanford.edu. If the matter is general in nature, you may prefer to address it via the CS240 Google Group.