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 |
Mon 08/26 |
Introduction
|
Homework 1 assigned. No review due on the first day of the course. Don's Notes. |
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 |
Fri 08/30 |
Monolithic OS Design
|
Don's Notes. |
- The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
- 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). |
Mon 09/02 |
Labor Day
|
Class canceled |
|
|
Fri 09/06 |
Research vs. Product
|
Don's Notes. |
- The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
- Introducing Technology Into The Linux Kernel:A Case Study (McKenney and Walpole, 2009, originally OSR 2008).
|
- Tanenbaum-Torvalds Debate Summary
- Tanenbaum-Torvalds Debate: Part II (Tanenbaum 06).
- Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
- 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).
|
Mon 09/09 |
Singularity
|
Don's Notes. |
Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR 2007). |
- Helios: Heterogeneous Multiprocessing with Satellite Kernels (Nightingale, Hodson, McIlroy, Hawblitzel, and Hunt, SOSP 2009)
- Safe to the Last Instruction: Automated Verification of a Type-Safe Operating System (Yang and Hawblitzel, PLDI 2010)
|
Fri 09/13 |
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. Don's Notes. |
- Operating System Support for Database Management (Stonebraker, CACM 1981).
- End-to-end Arguments in System Design (Saltzer, Reed, and Clark, TOCS 1984).
- Exokernel: An Operating System Architecture for Application-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)
|
- Application Performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997).
- Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011)
|
Mon 09/16 |
Virtual Machines
|
Email your rough project interest to Don Porter by midnight, EST. Don's 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).
|
Fri 09/20 |
Paravirtualization
|
Don's 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).
|
Dune: Safe User-Level Access to Privileged CPU Features (Belay, Bittau, Mashtizadeh, Terei, Mazieres, and Kozyrakis, OSDI 2012) |
Part 2: File Systems |
Mon 09/23 |
Distributed File Systems
|
Don's 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).
- Flat Datacenter Storage (Nightingale, Elson, Fan, Hofmann, Howell, and Suzue, OSDI 2012)
- LBFS: A Low-bandwidth Network File System (Muthitacharoen, Chen, and Mazieres, SOSP 2001)
|
Fri 09/27 |
Log-structured File Systems
|
Don's Notes. |
- 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
- Log-structured file systems: There's one in every SSD (Aurora, LWN 2009)
|
- 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)
|
Mon 09/30 |
Dependence Tracking
|
Don's 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)
|
- Disks from the Perspective of a File System (McKusick, Queue 2012)
- Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999).
|
Fri 10/04 |
Mid-term Exam
|
|
|
|
Mon 10/07 |
Speculation
|
Don's Notes. |
Speculative Execution in a Distributed File System (Nightingale, Chen, and Flinn, SOSP 2005). |
Rethink the sync (Nightingale, Veeraraghavan, Chen, and Flinn, OSDI 2006). |
Part 3: Concurrency |
Fri 10/11 |
OS Design and Synchronization
|
Don's Notes. Queue Slides. |
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
|
Mon 10/14 |
Scaling the OS and Applications (1)
|
Project Proposals Due by midnight Don's 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).
|
Fri 10/18 |
Scaling the OS and Applications (2)
|
Don's Notes. |
PTask: Operating System Abstractions To Manage GPUs as Compute Devices (Rossbach, Currey, Silberstein, Ray, and Witchel, SOSP 2011) |
- Dandelion: a Compiler and Runtime for Heterogeneous Systems (Rossbach, Yu, Currey, Martin, Fetterly, SOSP 2013)
- GPUfs: Integrating a File System with GPUs (Silberstein, Ford, Keidar, Witchel, ASPLOS 2013)
- 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)
|
Mon 10/21 |
Transactional Programming
|
Review the SOSP 09 paper. |
- Operating System Transactions (Porter, Hofmann, Rossbach, Benn, and Witchel, SOSP 2009).
- Rejected OSDI 08 intro
- Rejected ASPLOS 09 intro
- HotOS 09 intro
- (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)
- Improving Server Applications with System Transactions (Kim, Lee, Dunn, Hofmann, Wang, Witchel, and Porter, EuroSys 2012)
|
Part 4: Clouds, Data Centers, and other Large-Scale Systems |
Fri 10/25 |
System Scale (1)
|
Don's Notes. Read/Write Example Slides. |
- 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) |
Mon 10/28 |
System Scale (2)
|
Don's Notes. |
- Making Geo-Replicated Systems Fast as Possible, Consistent when Necessary (Li, Porto, Clement, Gehrke, Preguica, and Rodrigues, OSDI 2012)
- (Light) Brewer's CAP Theorem (Browne 2009)
- (Light) The Consistency Alphabet Soup (Gun Sirer, 2013)
- (Light) The Saddest Moment (Mickens, ;login : logout, 2013)
|
- Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS (Lloyd, Freedman, Kaminsky, and Andersen, SOSP 2011)
- 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)
|
Fri 11/01 |
MapReduce
|
Don's Notes. |
- MapReduce: Simplified Data Processing on Large Clusters (Dean and Ghemawat, OSDI, 2004)
- (Light) MapReduce: A Major Step Backwards (DeWitt and Stonebraker, 2008)
|
|
Part 5: Security |
Mon 11/04 |
Reasoning about System Security
|
Don's Notes. |
- Logical Attestation: An Authorization Architecture for Trustworthy Computing (Sirer, Bruijn, Reynolds, Shieh, Walsh, Williams, Schneider, SOSP 2011)
- (Light) 17 Mistakes Microsoft Made in the Xbox Security System (Steil 2005)
|
- Authentication in Distributed Systems: Theory and Practice (Lampson, Abadi, Burrows, and Wobber, TOCS 1992)
- A Logic of Authentication (Burrows, Abadi, and Needham, TOCS 1990).
|
Fri 11/08 |
The Trusted Computing Base
|
Guest Lecture by Long Lu Don's Notes. |
- A Note on the Confinement Problem (Lampson, Communications of ACM, 1973)
- 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)
- Leveraging Legacy Code to Deploy Desktop Applications on the Web (Douceur, Elson, Howell, Lorch, OSDI 2008)
|
Mon 11/11 |
Decentralized Information Flow Control (DIFC)
|
Don's Notes. |
- 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)
|
Fri 11/15 |
Integrity
|
Don's Notes. |
- Software fault isolation with API integrity and multi-principal modules (Mao, Chen, Zhou, Wang, Zeldovich, and Kaashoek, SOSP 2011)
- (Light) The Confused Deputy (Hardy, SIGOPS OSR, 1988)
|
|
Mon 11/18 |
The Browser is the OS
|
Don's Notes. |
Atlantis: Robust, Extensible Execution Environments for Web Applications (Mickens and Dhawan, SOSP 2011) |
The Multi-Principal OS Construction of the Gazelle Web Browser (Wang, Grier, Moshchuk, King Chowdhury, and Venter, Usenix Security 2009) |
Part 6: Debugging |
Fri 11/22 |
Finding Bugs
|
Don's Notes. |
- Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (Cadar, Dunbar, and Engler, OSDI 2008)
- A few billion lines of code later: using static analysis to find bugs in the real world (Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, Dawson Engler, Communications of the ACM archive Volume 53, Issue 2, February 2010)
|
Weird things that surprise academics trying to commercialize a static checking tool (Chou, Chelf, Hallem, Hanri-Gros, Fulton, Unangst, Zak, and Engler, SPIN, 2005) |
Mon 11/25 |
Synchronization Bugs
|
Don's 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)
|
Fri 11/29 |
Thanksgiving Break
|
Class canceled |
|
|
Mon 12/02 |
Project Presentations
|
|
|
|
Fri 12/06 |
Project Presentations
|
Final project report due via email to Don Porter by 5pm EDT. |
|
|
Wed 12/18 |
Final Exam
|
8:00-10:45 am, Chemistry 123. (Mostly) Non-cumulative: No detailed questions from pre-midterm papers, possible synthesis questions covering pre-midterm material. |
|
|