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:
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)
|