CSE 624: Schedule

This schedule is also available as an ical file that you can subscribe to.

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/24 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 01/26 Monolithic OS Design
Don's Notes.
  1. The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
  2. 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 01/30 Research vs. Product
Don's Notes.
  1. The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
  2. Introducing Technology Into The Linux Kernel:A Case Study (McKenney and Walpole, 2009, originally OSR 2008).
  1. Tanenbaum-Torvalds Debate Summary
  2. Tanenbaum-Torvalds Debate: Part II (Tanenbaum 06).
  3. Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
  4. Improving IPC by kernel design (Liedtke, SOSP '93)
  5. On Micro-Kernel Construction (Liedtke, SOSP '95)
  6. Unix as an Application Process (Golub, Dean, Forin, and Rashid, USENIX, 1990).
Wed 02/01 Singularity
Don's Notes. Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR 2007).
  1. Safe to the Last Instruction: Automated Verification of a Type-Safe Operating System (Yang and Hawblitzel, PLDI 2010)
Mon 02/06 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.
  1. End-to-end Arguments in System Design (Saltzer, Reed, and Clark, TOCS 1984).
  2. Application Performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997).
  1. Exokernel: An Operating System Architecture for Appliation-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)
  2. Rethinking the Library OS from the Top-Down (Porter, Boyd-Wickizer, Howell, Olinsky, Hunt, ASPLOS, 2011)
Wed 02/08 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).
  1. Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997).
  2. A comparison of software and hardware techniques for x86 virtualization (Adams and Agesen, ASPLOS, 2006).
  3. Compatibility is not transparency: VMM detection myths and realities (Garfinkel, Adams, Warfield, and Franklin, HotOS, 2007).
Mon 02/13 Paravirtualization
Don's Notes.
  1. Xen and Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Neugebaur, Pratt and Warfield, SOSP 2003).
  2. (Light) Are Virtual Machine Monitors Microkernels Done Right? (Hand, Warfield, Fraser, Kotsovinos, and Magenheimer, HotOS 2005).
  3. (Light) Are Virtual Machine Monitors Microkernels Done Right? (Heiser, Uhlig, and LeVasseur, SIGOPS OSR, 2006).
Part 2: File Systems
Wed 02/15 Distributed File Systems
Don's Notes. Scale and Performance in a Distributed File System (Howard, Kazar, Menees, Nichols, Satyanarayanan, Sidebothiam, and West, TOCS 1988).
  1. Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX 1985).
  2. LBFS: A Low-bandwidth Network File System (Muthitacharoen, Chen, and Mazieres, SOSP 2001)
Mon 02/20 Log-structured File Systems
Don's Notes.
  1. The Design and Implementation of a Log-Structured File System (Rosenblum and Ousterhout, TOCS, 1992).
  2. Ousterhout's critique of Seltzer's 1993 paper
  3. Ousterhout's critique of Seltzer's 1995 paper
  4. Seltzer's response to Ousterhout's critiques
  5. Log-structured file systems: There's one in every SSD (Aurora, LWN 2009)
  1. A Log-Structured File System for UNIX (Seltzer, Bostic, McKusick, and Staelin, USENIX 1993)
  2. Logging versus Clustering: A Performance Comparison (Seltzer, Smith, Balakrishnan, Chang, McMains, and Padmanabhan, USENIX 1995)
Wed 02/22 Dependence Tracking
Don's Notes.
  1. Generalized File System Dependences (Frost, Mammarella, Kohler, de los Reyes, Hovsepian, Matsuoka, and Zhang, SOSP 2007)
  2. (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).
Mon 02/27 Mid-term Exam
Thu 03/01 Speculation
Note different date and time: 5:10-6:20
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
Mon 03/05 OS Design and Synchronization
Don's Notes.
Queue Slides.
Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP 1989)
  1. The Design and Implementation of an Operating System to Support Distributed Multimedia Applications (Leslie, McAuley, Black, Roscoe, Barham, Evers, Fairbarns, and Hyden, JSAC 1997).
  2. Chapter 6 of Massalin's Thesis
Wed 03/07 Scaling the OS and Applications (1)
Don's Notes.
  1. Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
  2. Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HotOS, 2003)
  1. Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980).
  2. Programming with Threads (Birrell 1996).
  3. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Mon 03/12 Scaling the OS and Applications (2)
Don's Notes. The Multikernel: A New OS Architecture for Scalable Multicore Systems (Baumann, Barham, Dagand, Harris, Isaacs, Peter, Roscoe, Schupbach, and Singhania, SOSP 2009).
  1. An Analysis of Linux Scalability to Many Cores (Boyd-Wickizer, Clements, Mao, Pesterev, Kaashoek, Morris, and Zeldovich, OSDI 2010)
Wed 03/14 Transactional Programming
Review the SOSP 09 paper.
  1. Operating System Transactions (Porter, Hofmann, Rossbach, Benn, and Witchel, SOSP 2009).
  2. Rejected OSDI 08 intro
  3. Rejected ASPLOS 09 intro
  4. HotOS 09 intro
  5. (Light) Transactional memory: The great nerd equalizer (Dziuba, The Register, 2008)
  1. The Transaction Concept (Gray 1981).
  2. Experiences with transactions in QuickSilver (Shmuck and Wyllie, SOSP 1991)
Part 4: Clouds, Data Centers, and other Large-Scale Systems
Mon 03/19 System Scale (1)
Don's Notes.
Read/Write Example Slides.
  1. The Google File System (Ghemawat, Gobioff, and Leung, SOSP 2003)
  2. (Light) Google App Engine Event (Beckman 2009)
GFS: Evolution on Fast-forward (McKusick and Quinlan, ACM Queue, 2009)
Wed 03/21 System Scale (2)
Project proposals due by Midnight EDT on Friday, March 23. Don's Notes.
  1. Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS (Lloyd, Freedman, Kaminsky, and Andersen, SOSP 2011)
  2. (Light) Brewer's CAP Theorem (Browne 2009)
  1. BigTable: A system for Distributed Structured Storage (Chang, Dean, Ghemawat, Hsieh, Wallach, Burrows, Chandra, Fikes, and Gruber, OSDI 2006)
  2. (Slides) ZFS: The last word in file systems (Moore 2004)
  3. The Chubby lock service for loosely-coupled distributed systems (Burrows, OSDI 2006)
  4. Large-scale Incremental Processing Using Distributed Transactions and Notifications (Peng and Dabek, OSDI 2010)
Mon 03/26 MapReduce
Don's Notes.
  1. MapReduce: Simplified Data Processing on Large Clusters (Dean and Ghemawat, OSDI, 2004)
  2. (Light) MapReduce: A Major Step Backwards (DeWitt and Stonebraker, 2008)
Part 5: Debugging
Wed 03/28 Finding Bugs
Don's Notes.
  1. Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (Cadar, Dunbar, and Engler, OSDI 2008)
  2. 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 04/02 Spring Break
Wed 04/04 Spring Break
Mon 04/09 Class canceled
Wed 04/11 Class canceled
Mon 04/16 Synchronization Bugs
Don's Notes. RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking (Yu, Rodeheffer, and Chen, SOSP, 2005)
  1. Time, Clocks and the Ordering of Events in a Distributed System (Lamport, CACM 1978)
  2. JSR 133 (Java Memory Model FAQ by Manson and Goetz, 2004)
Part 6: Security
Wed 04/18 Reasoning about System Security
Don's Notes.
  1. Logical Attestation: An Authorization Architecture for Trustworthy Computing (Sirer, Bruijn, Reynolds, Shieh, Walsh, Williams, Schneider, SOSP 2011)
  2. (Light) 17 Mistakes Microsoft Made in the Xbox Security System (Steil 2005)
  1. Authentication in Distributed Systems: Theory and Practice (Lampson, Abadi, Burrows, and Wobber, TOCS 1992)
  2. A Logic of Authentication (Burrows, Abadi, and Needham, TOCS 1990).
Mon 04/23 Decentralized Information Flow Control (DIFC)
Don's Notes.
  1. Information flow control for standard OS abstractions (Krohn, Yip, Brodsky, Cliffer, Kaashoek, Kohler, and Morris, SOSP 2007)
  2. (Light) Crisis and Aftermath (Spafford, Communications of ACM 1989)
  1. A Decentralized Model for Information Flow Control (Myers and Liskov, SOSP 1997)
  2. Labels and Events in the Asbestos Operating System (Efstathopoulos, Krohn, VanDeBogart, Frey, Ziegler, Kohler, Mazieres, Kaashoek, and Morris, SOSP 2005)
  3. Making Information Flow Explicit in HiStar (Zeldovich, Boyd-Wickizer, Kohler, and Mazieres, OSDI 2006)
Wed 04/25 Integrity
Don's Notes.
  1. Software fault isolation with API integrity and multi-principal modules (Mao, Chen, Zhou, Wang, Zeldovich, and Kaashoek, SOSP 2011)
  2. (Light) The Confused Deputy (Hardy, SIGOPS OSR, 1988)
Mon 04/30 The Trusted Computing Base
Don's Notes.
  1. A Note on the Confinement Problem (Lampson, Communications of ACM, 1973)
  2. Reflections on Trusting Trust (Thompson, Turing Award Lecture, 1984)
  1. Native Client: A Sandbox for Portable, Untrusted x86 Native Code (Yee, Sehr, Dardyk, Chen, Muth, Ormandy, Okasaka, Narula, Fullagar, Oakland 2009)
  2. Leveraging Legacy Code to Deploy Desktop Applications on the Web (Douceur, Elson, Howell, Lorch, OSDI 2008)
Wed 05/02 Project Presentations
Fri 05/04
Final project report due via email to Don Porter by 5pm EDT.
Mon 05/14 Final Exam
5:15-7:45pm, Usual class location (CS 2313A).
(Mostly) Non-cumulative: No detailed questions from pre-midterm papers, possible synthesis questions covering pre-midterm material.

Copyright Notice: These lecture notes, homeworks, and lab assignments are part of a graduate course on operating systems. You must ask me permission to use these materials. I do not grant to you the right to publish these materials for profit in any form.
Donald Porter, Stony Brook University

Last updated: Mon May 07 20:55:41 -0400 2012 [validate xhtml]