Syllabus Updated April 1, 2017


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

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 are required to read the papers listed in each class slot before that class meets. For additional reading material, see a previous installment of CS240.

Week Monday Wednesday
Apr 3 Reflections on Trusting Trust (sb)
Lecture Notes | Slides
Eraser: A Dynamic Data Race Detector (dm) (Question)
Lecture Notes
Lab 1 Released
Apr 10 Scheduler Activations (sb) (Question)
Lecture Notes
Design and Implementation of SUN NFS (dm) (Question)
Lecture Notes
Apr 17 Speculator (dm) (Question)
Lecture Notes
Read-Log-Update (dm) (Question)
Lecture Notes
• Lab 1 Due
Apr 24 Hoard: A Scalable Memory Allocator (sb) (Question)
Lecture Notes
The Scalable Commutativity Rule (sb) (Question)
Lecture Notes
May 1 MIDTERM QUIZ - DO NOT MISS MapReduce (dm)
Lecture Notes
• No question but pick up exam in lecture
May 8 A Tour of Go (sb) (Question)
Lecture Notes | Slides
Lab 2 Released
Exokernel (sb) (Question)
Lecture Notes
May 15 Singularity (sb) (Question)
Lecture Notes
Capsicum (dm) (Question)
Lecture Notes
May 22 Memory Resource Management in ESX (dm) (Question)
Lecture Notes
• Lab 2 Due
Software and Hardware for x86 Virtualization (sb) (Question)
Lecture Notes
May 29 Memorial Day (no class!) Dune (dm) (Question)
Lecture Notes
Jun 5 Eliminating Receive Livelock (sb) (Question)
Lecture Notes
IX (dm) (Question)
Lecture Notes
Final Exam: Monday, June 12th, 2017, 3:30pm - 6:30pm