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
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.
  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 09/02 Labor Day
Class canceled
Fri 09/06 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).
Mon 09/09 Singularity
Don's Notes. Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR 2007).
  1. Helios: Heterogeneous Multiprocessing with Satellite Kernels (Nightingale, Hodson, McIlroy, Hawblitzel, and Hunt, SOSP 2009)
  2. 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.
  1. Operating System Support for Database Management (Stonebraker, CACM 1981).
  2. End-to-end Arguments in System Design (Saltzer, Reed, and Clark, TOCS 1984).
  3. Exokernel: An Operating System Architecture for Application-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)
  1. Application Performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997).
  2. 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).
  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).
Fri 09/20 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).
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).
  1. Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX 1985).
  2. Flat Datacenter Storage (Nightingale, Elson, Fan, Hofmann, Howell, and Suzue, OSDI 2012)
  3. LBFS: A Low-bandwidth Network File System (Muthitacharoen, Chen, and Mazieres, SOSP 2001)
Fri 09/27 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)
Mon 09/30 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)
  1. Disks from the Perspective of a File System (McKusick, Queue 2012)
  2. 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)
  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
Mon 10/14 Scaling the OS and Applications (1)
Project Proposals Due by midnight 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).
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)
  1. Dandelion: a Compiler and Runtime for Heterogeneous Systems (Rossbach, Yu, Currey, Martin, Fetterly, SOSP 2013)
  2. GPUfs: Integrating a File System with GPUs (Silberstein, Ford, Keidar, Witchel, ASPLOS 2013)
  3. The Multikernel: A New OS Architecture for Scalable Multicore Systems (Baumann, Barham, Dagand, Harris, Isaacs, Peter, Roscoe, Schupbach, and Singhania, SOSP 2009).
  4. 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.
  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)
  3. 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.
  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)
Mon 10/28 System Scale (2)
Don's Notes.
  1. Making Geo-Replicated Systems Fast as Possible, Consistent when Necessary (Li, Porto, Clement, Gehrke, Preguica, and Rodrigues, OSDI 2012)
  2. (Light) Brewer's CAP Theorem (Browne 2009)
  3. (Light) The Consistency Alphabet Soup (Gun Sirer, 2013)
  4. (Light) The Saddest Moment (Mickens, ;login : logout, 2013)
  1. Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS (Lloyd, Freedman, Kaminsky, and Andersen, SOSP 2011)
  2. BigTable: A system for Distributed Structured Storage (Chang, Dean, Ghemawat, Hsieh, Wallach, Burrows, Chandra, Fikes, and Gruber, OSDI 2006)
  3. (Slides) ZFS: The last word in file systems (Moore 2004)
  4. The Chubby lock service for loosely-coupled distributed systems (Burrows, OSDI 2006)
  5. Large-scale Incremental Processing Using Distributed Transactions and Notifications (Peng and Dabek, OSDI 2010)
Fri 11/01 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: Security
Mon 11/04 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).
Fri 11/08 The Trusted Computing Base
Guest Lecture by Long Lu 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)
Mon 11/11 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)
Fri 11/15 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 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.
  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 11/25 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)
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.

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: 2015-07-16 09:52:48 -0400 [validate xhtml]