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/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.
  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).
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)
  1. Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
  2. Improving IPC by kernel design (Liedtke, SOSP '93)
  3. On Micro-Kernel Construction (Liedtke, SOSP '95)
  4. Unix as an Application Process (Golub, Dean, Forin, and Rashid, USENIX, 1990).
  5. 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.
  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).
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.
  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)
Thu 02/19 High-Performance User I/O
Guest lecture by Bhushan Jain
Review the second paper.
Don's Notes.
  1. (Light) Arrakis: A Case for the End of the Empire (Peter and Anderson, HotOS '13)
  2. Arrakis: The Operating System is the Control Plane (Peter, Li, Zhang, Ports, Woos, Krishnamurthy, Anderson, and Roscoe, OSDI '14)
  1. IX: A Protected Dataplane Operating System for High Throughput and Low Latency (Belay, Prekas, Klimovic, Grossman, Kozyrakis, and Bugnion, OSDI '14)
  2. PTask: Operating System Abstractions To Manage GPUs as Compute Devices (Rossbach, Currey, Silberstein, Ray, and Witchel, SOSP 2011)
  3. Dandelion: a Compiler and Runtime for Heterogeneous Systems (Rossbach, Yu, Currey, Martin, Fetterly, SOSP 2013)
  4. GPUfs: Integrating a File System with GPUs (Silberstein, Ford, Keidar, Witchel, ASPLOS 2013)
  5. The Multikernel: A New OS Architecture for Scalable Multicore Systems (Baumann, Barham, Dagand, Harris, Isaacs, Peter, Roscoe, Schupbach, and Singhania, SOSP 2009).
  6. 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).
  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)
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)
  1. Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997).
  2. 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)
  1. Memory Resource Management in VMware ESX Server (Waldspurger, OSDI, 2002).
  2. 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.
  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)
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).
  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)
Thu 03/26 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)
Tue 03/31 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).
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)
  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
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)
  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. Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
  4. Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HotOS, 2003)
  5. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Thu 04/09 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
Tue 04/14 System Scale
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)
Thu 04/16 MapReduce
Guest lecture by Bill Jannen.
Don's Notes.
Bill'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
Tue 04/21 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).
Thu 04/23 The Trusted Computing Base
Don's Notes.
  1. Shielding Applications from an Untrusted Cloud with Haven (Baumann, Peinado, and Hunt, OSDI '14)
  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)
Tue 04/28 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)
Part 6: Debugging
Thu 04/30 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)
Tue 05/05 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)
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.

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:48:37 -0400 [validate xhtml]