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 01/27 |
Snow Day. School closed
|
|
|
|
Thu 01/29 |
|
Class canceled. Make-up session TBD |
|
|
Tue 02/03 |
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 |
Thu 02/05 |
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). |
Tue 02/10 |
Microkernels
|
Don's Notes. |
From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels? (Elphinstone and Heiser, SOSP '13) |
- 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).
- seL4: Formal Verification of an OS Kernel (Klein et al, SOSP '09)
|
Thu 02/12 |
Research vs. Product
|
In reading the second paper, feel free to skim the technical details about RCU; focus instead on the history and lessons. 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).
|
Tue 02/17 |
Exokernels
|
Guest lecture by Nima Honarmand 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)
|
Thu 02/19 |
High-Performance User I/O
|
Guest lecture by Bhushan Jain Review the second paper. Don's Notes. |
- (Light) Arrakis: A Case for the End of the Empire (Peter and Anderson, HotOS '13)
- Arrakis: The Operating System is the Control Plane (Peter, Li, Zhang, Ports, Woos, Krishnamurthy, Anderson, and Roscoe, OSDI '14)
|
- IX: A Protected Dataplane Operating System for High Throughput and Low Latency (Belay, Prekas, Klimovic, Grossman, Kozyrakis, and Bugnion, OSDI '14)
- 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)
|
Tue 02/24 |
Singularity
|
In-class quiz over Homework 1 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)
|
Thu 02/26 |
Virtual Machines (part 1)
|
Read through the end of Section 6.1. |
Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012) |
- Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997).
- The Evolution of an x86 Virtual Machine Monitor (Agesen, Garthwaite, Sheldon, and Subrahmanyan, OSR, 2010)
|
Tue 03/03 |
Virtual Machines (part 1)
|
Read Sections 6.2--11. You do not need to submit a second review. Don's Notes. |
Bringing Virtualization to the x86 Architecture with the Original VMware Workstation (Bugnion, Devine, Rosenblum, Sugerman, and Wang, TOCS, 2012) |
- Memory Resource Management in VMware ESX Server (Waldspurger, OSDI, 2002).
- Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor (Sugerman, Venkitachalam, and Lim, USENIX 2001)
|
Thu 03/05 |
Snow Day. School closed
|
|
|
|
Tue 03/10 |
Mid-term Exam
|
|
|
|
Thu 03/12 |
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) |
Tue 03/17 |
Spring Recess, Class Canceled
|
|
|
|
Thu 03/19 |
Spring Recess, Class Canceled
|
|
|
|
Part 2: File Systems |
Tue 03/24 |
Distributed File Systems
|
Email your rough project interest to Don Porter by midnight, EST. 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)
|
Thu 03/26 |
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)
|
Tue 03/31 |
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).
|
Part 3: Concurrency |
Thu 04/02 |
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
|
Tue 04/07 |
Scaling the OS and Applications
|
Project Proposals Due by midnight Don's Notes. |
The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors (Clements, Kaashoek, Zeldovich, Morris, and Kohler, SOSP '13) |
- Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980).
- Programming with Threads (Birrell 1996).
- 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)
- Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
|
Thu 04/09 |
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 |
Tue 04/14 |
System Scale
|
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) |
Thu 04/16 |
MapReduce
|
Guest lecture by Bill Jannen. Don's Notes. Bill'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 |
Tue 04/21 |
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).
|
Thu 04/23 |
The Trusted Computing Base
|
Don's Notes. |
- Shielding Applications from an Untrusted Cloud with Haven (Baumann, Peinado, and Hunt, OSDI '14)
- 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)
|
Tue 04/28 |
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)
|
|
Part 6: Debugging |
Thu 04/30 |
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) |
Tue 05/05 |
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)
|
Thu 05/07 |
Project Presentations
|
|
|
|
Fri 05/08 |
|
Final project report due via email to Don Porter by 5pm EDT. |
|
|
Mon 05/18 |
Final Exam
|
11:15am-1:45 pm, (Mostly) Non-cumulative: No detailed questions from pre-midterm papers, possible synthesis questions covering pre-midterm material. |
|
|