Unless otherwise noted, you only need to review the first paper listed for each day.
Note that optional readings are available for those with more interest in a topic,
and are not required reading for any exams or homework assignments.
Papers are only accessible to hosts in the stonybrook.edu domain, although most are available elsewhere online.
Marking a paper as "Light" is not a criticism, but rather that you need not tease out every low-level detail. It is there to provide extra context and you should come to class prepared to discuss its main points.
Date |
Topics |
Notes |
Readings |
Optional Readings |
Tue 02/01 |
Introduction
|
Homework 1 assigned. No review due on the first day of the course. |
How (and How Not) to Write a Good Systems Paper (Levin and Redell, SIGOPS OSR, 1983). |
Towards a Model of Computer Systems Research (Anderson, WOWCS '08). |
Part 1: OS Design |
Thu 02/03 |
Monolithic OS Design
|
Slides |
- The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
- The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
- The Rise of "Worse is Better" (Richard Gabriel, Lisp: Good News, Bad News, How to Win Big, 1989).
|
The Structure of the "THE"-Multiprogramming System (Dijkstra, CACM '68). |
Tue 02/08 |
Microkernels and Isolation
|
In lieu of the standard review, identify what problem(s) with a UNIX-like, monolithic design the Mach and Singularity designs were trying to address. For each, identify what you think is the biggest problem with each design. On balance, is either an improvement? Slides |
- Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
- Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR 2007).
|
- Improving IPC by kernel design (Liedtke, SOSP '93)
- On Micro-Kernel Construction (Liedtke, SOSP '95)
- Unix as an Application Process (Golub, Dean, Forin, and Rashid, USENIX, 1990).
|
Thu 02/10 |
Exokernels
|
In-class quiz over Homework 1 Review the Exokernel paper. In your review, apply the end-to-end argument to 3 Exokernel design decisions. Slides Study Notes. |
- End-to-end Arguments in System Design (Saltzer, Reed, and Clark, TOCS 1984).
- Application Performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997).
|
- Exokernel: An Operating System Architecture for Appliation-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)
- Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011)
|
Tue 02/15 |
Virtual Machines
|
Email your rough project interest to Don Porter by midnight, EST. Slides Study Notes |
Memory Resource Management in VMware ESX Server (Waldspurger, OSDI, 2002). |
- Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997).
- A comparison of software and hardware techniques for x86 virtualization (Adams and Agesen, ASPLOS, 2006).
- Compatibility is not transparency: VMM detection myths and realities (Garfinkel, Adams, Warfield, and Franklin, HotOS, 2007).
|
Thu 02/17 |
Paravirtualization
|
Slides, Study Notes |
- Xen and Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Neugebaur, Pratt and Warfield, SOSP 2003).
- (Light) Are Virtual Machine Monitors Microkernels Done Right? (Hand, Warfield, Fraser, Kotsovinos, and Magenheimer, HotOS 2005).
- (Light) Are Virtual Machine Monitors Microkernels Done Right? (Heiser, Uhlig, and LeVasseur, SIGOPS OSR, 2006).
|
|
Part 2: Concurrency |
Tue 02/22 |
OS Design and Synchronization
|
Study Notes Slides illustrating how lock-free queues work. |
Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP 1989) |
- The Design and Implementation of an Operating System to Support Distributed Multimedia Applications (Leslie, McAuley, Black, Roscoe, Barham, Evers, Fairbarns, and Hyden, JSAC 1997).
- Chapter 6 of Massalin's Thesis
|
Thu 02/24 |
Scaling the OS and Applications (1)
|
Slides Study Notes |
- Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
- Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HotOS, 2003)
|
- Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980).
- Programming with Threads (Birrell 1996).
- Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
|
Tue 03/01 |
Scaling the OS and Applications (2)
|
Study Notes Slides |
The Multikernel: A New OS Architecture for Scalable Multicore Systems (Baumann, Barham, Dagand, Harris, Isaacs, Peter, Roscoe, Schupbach, and Singhania, SOSP 2009). |
- An Analysis of Linux Scalability to Many Cores (Boyd-Wickizer, Clements, Mao, Pesterev, Kaashoek, Morris, and Zeldovich, OSDI 2010)
|
Thu 03/03 |
Transactional Programming
|
Study Notes Slides |
- Operating System Transactions (Porter, Hofmann, Rossbach, Benn, and Witchel, SOSP 2009).
- (Light) Transactional memory: The great nerd equalizer (Dziuba, The Register, 2008)
|
- The Transaction Concept (Gray 1981).
- Experiences with transactions in QuickSilver (Shmuck and Wyllie, SOSP 1991)
|
Tue 03/08 |
Mid-term Exam
|
|
|
|
Thu 03/10 |
Determinism
|
Study Notes |
Efficient System-Enforced Deterministic Parallelism (Aviram, Weng, Hu, and Ford, OSDI 2010). |
Deterministic Process Groups in dOS (Bergan, Hunt, Ceze, and Gribble, OSDI 2010). |
Part 3: File Systems |
Tue 03/15 |
Distributed File Systems
|
Slides Study Notes |
Scale and Performance in a Distributed File System (Howard, Kazar, Menees, Nichols, Satyanarayanan, Sidebothiam, and West, TOCS 1988). |
- Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX 1985).
- LBFS: A Low-bandwidth Network File System (Muthitacharoen, Chen, and Mazieres, SOSP 2001)
|
Thu 03/17 |
Log-structured File Systems
|
Slides |
- The Design and Implementation of a Log-Structured File System (Rosenblum and Ousterhout, TOCS, 1992).
- Ousterhout's critique of Seltzer's 1993 paper
- Ousterhout's critique of Seltzer's 1995 paper
- Seltzer's response to Ousterhout's critiques
|
- A Log-Structured File System for UNIX (Seltzer, Bostic, McKusick, and Staelin, USENIX 1993)
- Logging versus Clustering: A Performance Comparison (Seltzer, Smith, Balakrishnan, Chang, McMains, and Padmanabhan, USENIX 1995)
|
Tue 03/22 |
Dependence Tracking
|
Slides Study Notes |
- Generalized File System Dependences (Frost, Mammarella, Kohler, de los Reyes, Hovsepian, Matsuoka, and Zhang, SOSP 2007)
- (Light) The Many Faces of Systems Research - And How To Evaluate Them (Brown, Chanda, Farrow, Fedorova, Maniatis, Scott, HotOS 2005)
|
Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999). |
Thu 03/24 |
Speculation
|
Slides |
Speculative Execution in a Distributed File System (Nightingale, Chen, and Flinn, SOSP 2005). |
Rethink the sync (Nightingale, Veeraraghavan, Chen, and Flinn, OSDI 2006). |
Part 4: Clouds, Data Centers, and other Large-Scale Systems |
Tue 03/29 |
System Scale (1)
|
|
- The Google File System (Ghemawat, Gobioff, and Leung, SOSP 2003)
- (Light) Google App Engine Event (Beckman 2009)
|
GFS: Evolution on Fast-forward (McKusick and Quinlan, ACM Queue, 2009) |
Thu 03/31 |
System Scale (2)
|
Project proposals due by Midnight EDT on Friday, April 1. Study Notes |
- BigTable: A system for Distributed Structured Storage (Chang, Dean, Ghemawat, Hsieh, Wallach, Burrows, Chandra, Fikes, and Gruber, OSDI 2006)
- (Slides) ZFS: The last word in file systems (Moore 2004)
|
- The Chubby lock service for loosely-coupled distributed systems (Burrows, OSDI 2006)
- Large-scale Incremental Processing Using Distributed Transactions and Notifications (Peng and Dabek, OSDI 2010)
|
Tue 04/05 |
MapReduce
|
Study Notes |
- MapReduce: Simplified Data Processing on Large Clusters (Dean and Ghemawat, OSDI, 2004)
- (Light) MapReduce: A Major Step Backwards (DeWitt and Stonebreaker, 2008)
|
|
Part 5: Debugging |
Thu 04/07 |
Finding Bugs
|
Slides Study Notes |
- Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (Cadar, Dunbar, and Engler, OSDI 2008)
- (Slides) Weird things that surprise academics trying to commercialize a static checking tool (Chou, Chelf, Hallem, Hanri-Gros, Fulton, Unangst, Zak, and Engler, SPIN, 2005)
|
|
Tue 04/12 |
Synchronization Bugs
|
Study Notes |
RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking (Yu, Rodeheffer, and Chen, SOSP, 2005) |
- Time, Clocks and the Ordering of Events in a Distributed System (Lamport, CACM 1978)
- JSR 133 (Java Memory Model FAQ by Manson and Goetz, 2004)
|
Thu 04/14 |
Availability
|
Study notes |
- Eliminating Receive Livelock in an Interrupt-driven Kernel (Mogul and Ramakrishnan, USENIX 1996)
- (Light) Brewer's CAP Theorem (Browne 2009)
|
|
Tue 04/19 |
Spring Break
|
|
|
|
Thu 04/21 |
Spring Break
|
|
|
|
Part 6: Security |
Tue 04/26 |
Reasoning about System Security
|
|
- Authentication in Distributed Systems: Theory and Practice (Lampson, Abadi, Burrows, and Wobber, TOCS 1992)
- (Light) 17 Mistakes Microsoft Made in the Xbox Security System (Steil 2005)
|
A Logic of Authentication (Burrows, Abadi, and Needham, TOCS 1990). |
Thu 04/28 |
Decentralized Information Flow Control (DIFC)
|
Slides |
- Information flow control for standard OS abstractions (Krohn, Yip, Brodsky, Cliffer, Kaashoek, Kohler, and Morris, SOSP 2007)
- (Light) Crisis and Aftermath (Spafford, Communications of ACM 1989)
|
- A Decentralized Model for Information Flow Control (Myers and Liskov, SOSP 1997)
- Labels and Events in the Asbestos Operating System (Efstathopoulos, Krohn, VanDeBogart, Frey, Ziegler, Kohler, Mazieres, Kaashoek, and Morris, SOSP 2005)
- Making Information Flow Explicit in HiStar (Zeldovich, Boyd-Wickizer, Kohler, and Mazieres, OSDI 2006)
|
Tue 05/03 |
Reducing the Trusted Computing Base
|
|
- Leveraging Legacy Code to Deploy Desktop Applications on the Web (Douceur, Elson, Howell, Lorch, OSDI 2008)
- (Light) A Note on the Confinement Problem (Lampson, Communications of ACM, 1973)
- (Light) Reflections on Trusting Trust (Thompson, Turing Award Lecture, 1984)
|
Native Client: A Sandbox for Portable, Untrusted x86 Native Code (Yee, Sehr, Dardyk, Chen, Muth, Ormandy, Okasaka, Narula, Fullagar, Oakland 2009) |
Thu 05/05 |
System Design Redux
|
Instead of a review for Hints paper, give your own hints based on your project experience. |
- Hints for Computer System Design (Lampson, SIGOPS OSR, 1983)
- (Light) The Confused Deputy (Hardy, SIGOPS OSR, 1988)
|
|
Tue 05/10 |
Class canceled.
|
|
|
|
Thu 05/12 |
Project Presentations - double class period.
|
|
|
|
Thu 05/12 |
|
Final project report due via email to Don Porter by 5pm EDT. |
|
|
Fri 05/20 |
Final Exam
|
2:15-4:45, Usual class location (CS 2313A). (Mostly) Non-cumulative: No detailed questions from pre-midterm papers, possible synthesis questions covering pre-midterm material. |
|
|