15-712 Syllabus


There are no official texts for the course. If you're not familiar with the background material, you may wish to look at:

You might take a peek at the two CMU undergrad systems courses for background information on operating systems (15-410) and networking (15-441).

Suggested Readings

You may also find the following readings useful:


Your final grade for the course will be based on the following weights:

The quizzes will be in-class, one near midterm and one near the end of the semester.

The project in 15-712 is an open-ended research project, done in groups of three. The project requires a proposal, a project status report, and a final report (both written and presented).


Also available as an ical file that you can subscribe to.

Note: Class will meet on average twice per week, but there will be a few weeks where we only meet once and a few where we meet thrice. Most weeks are Monday-Wednesday, but please consult the schedule!

Date Topics Notes Readings
Mon 09/10 Introduction
Lampson84, Gabriel91–Section 2.1 only
Part 1: Concurrency, Threads, Parallelism, Ordering, and Races
Wed 09/12 Implementing remote procedure calls
Fri 09/14 TA-led undergrad OS and networking review
Attendance optional
Mon 09/17 Using threads in interactive systems: A case study
Wed 09/19 Time, Clocks, and the Ordering of Events in a Distributed System
Mentioned in class: ISIS. Lamport78
Fri 09/21 no class
Mon 09/24 Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs
Wed 09/26 no class
Fri 09/28 no class
Part 2: Storage and Remote DMA
Mon 10/01 A Case for Redundant Arrays of Inexpensive Disks (RAID)
You may choose one paper to write a summary about Patterson88, Schroeder07
Wed 10/03 The Design and Implementation of a Log-Structured File System
Fri 10/05 no class
Mon 10/08 Cluster-based storage: NASD and the Google File System
Gibson98, Ghemawat03
Wed 10/10 Separating data and control transfer in distributed operating systems, The Direct Access File System
Thekkath94, DeBergalis03
Fri 10/12 MapReduce: Simpled Data Processing on Large Clusters, Interpreting the Data: Parallel Analysis with Sawzall
Dean04, Pike05
Mon 10/15 no class
Wed 10/17 OS Architecture and Extensibility: SPIN and the Exokernel
[pdf] [ppt]
Peter Steenkiste guest lecture Bershad95, Kaashoek97
Fri 10/19 Mid-semester Break
Part 3: Transactions and Databases
Mon 10/22 On Optimistic Methods for Concurrency Control
For further reading, see Spectulative Execution in a Distributed File System Kung81
Wed 10/24 no class
Fri 10/26 no class
Mon 10/29 1st midterm
Wed 10/31 Efficient Locking for Concurrent Operations on B-Trees
See also Chord-Sigcomm2001 if you'd like more details. Lehman81
Fri 11/02 Principles of Transaction-Oriented Database Recovery
Possibly a more friendly ref for concurrency control and recovery Haerder83
Mon 11/05 Recovery Management in QuickSilver
Part 4: Generalized Fault Tolerance
Wed 11/07 no class (many students at PDL retreat)
Thu 11/08 Project meetings (all day)
Please schedule a 30 minute time slot
Fri 11/09 Paxos
Wikipedia Paxos article. Lamport's original Greek parable. Lamport01
Mon 11/12 Hive: Fault Containment for Shared-Memory Multiprocessors
Wed 11/14 The Byzantine General's Problem, Practical Byzantine Fault Tolerance
[pdf] [ppt]
Lamport's comments on the Byzantine Generals paper (see also here). Castro99, Lamport82
Part 5: Security
Fri 11/16 Reflections on Trusting Trust, Why Cryptosystems Fail, Crisis and Aftermath
Thompson84, Anderson94, Spafford89
Mon 11/19 No class
Wed 11/21 Gobble gobble
Fri 11/23 Gobble gobble
Mon 11/26 The protection of information in computer systems
For additional info, see The Flask Security Architecture paper that describes the underpinnings of SELinux and the Flume paper from SOSP 2007 on DIFC. Saltzer75
Wed 11/28 A Logic of Authentication
See also Dos and Don'ts of Client Authentication on the Web. Burrows90
Fri 11/30 Terra: A Virtual Machine-Based Platform for Trusted Computing
Mon 12/03 Midterm 2
Wed 12/05 Project presentations
Fri 12/07 Project presentations
Last day of class
Wed 12/12 Final report due

Last updated: Tue Dec 11 18:52:09 -0500 2007 [validate xhtml]