Syllabus Updated May 3, 2016

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 Tuesday Thursday
1 • Reflections on Trusting Trust
• Eraser: A Dynamic Data Race Detector for Multithreaded Programs (Question)
2 • Scheduler Activations (Question)
• Processes and Monitors in Mesa (Question)
3 • Lab 1 Released
• Threads Cannot Be Implemented As a Library (Question)
• Eliminating Receive Livelock (Question)
4 • Hoard: A Scalable Memory Allocator (Question)
• The Scalable Commutativity Rule (Question)
5 • Lab 1 Due
• Design and Implementation of the SUN NFS (Question)
• Midterm (in class, open notes)
6 • Lab 2 Released
• The Design and Implementation of LFS (Question)
• Rethink the Sync (Question)
7 • Memory Resource Management in ESX (Question)
• Software and Hardware for x86 Virtualization (Question)
8 • Lab 2 Due
• MapReduce (No Question!)
• Lab 3 Released
• The Go Programming Language
• A Tour of Go (Question)
9 • Signularity (Question)
• Exokernel (Question)
10 • Final Exam (in class, open notes)
• Lab 3 Due (Friday, 5:00pm)