15-712 Syllabus


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

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


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).


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

Note: Class will meet on average two times per week, but we will frontload the lectures at the begining of the semester. This schedule is subject to change, so please hold all three days (Mon, Wed, Fri) open each week.

Date Topics Notes and Further Reading Readings
Mon 02/01 Introduction
Wisdom papers Brooks75, Hamming86, Gabriel91–Section 2.1 only
Wed 02/03 A few classics
Both of these papers are in the SigOps Hall of Fame. Unix paper (SigOps HoF) Lampson83, Saltzer84
Part 1: Concurrency, Ordering, Races
Fri 02/05 Implementing Remote Procedure Calls
SigOps HoF paper Birrell84
Mon 02/08 Time, Clocks, and the Ordering of Events in a Distributed System
SigOps HoF paper Lamport78
Wed 02/10 Distributed Snapshots: Determining Global States of Distributed Systems
SigOps HoF paper Chandy85
Fri 02/12 No class
Mon 02/15 Detecting Concurrency Bugs: Eraser & TSVD
SOSP'97 best paper. SOSP'19 best paper Savage97, Li19
Part 2: File Systems and Disks
Wed 02/17 A Fast File System for UNIX
SigOps HoF paper McKusick84
Fri 02/19 Scale and Performance in a Distributed File System
Leases paper. SigOps HoF papers Howard88
Mon 02/22 The Design and Implementation of a Log-Structured File System
SigOps HoF paper Rosenblum92
Wed 02/24 A Case for Redundant Arrays of Inexpensive Disks (RAID)
SigOps HoF paper. Fast'07 best paper Patterson88, Schroeder07
Part 3: Transactions and Databases
Fri 02/26 On Optimistic Methods for Concurrency Control
SigOps HoF paper. Kung81
Mon 03/01 Concurrency Control and Recovery
Multiversion concurrency control Franklin97
Part 4: Fault Tolerance
Wed 03/03 Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial
SigOps HoF paper Schneider90
Fri 03/05 No class
Deadline to form project groups
Mon 03/08 Midterm #1
Wed 03/10 Paxos
Lamport's original Greek parable (SigOps HoF paper). Viewstamped Replication (SigOps HoF paper). Lamport01
Fri 03/12 Day of meetings to discuss Project Proposal ideas
Mon 03/15 Practical Byzantine Fault Tolerance
The Byzantine Generals Problem Castro99
Wed 03/17 Project: Proposal
Proposal Report due by 11:59 pm
Fri 03/19 No CMU classes - Mid-Semester break
Part 5: OS Kernels and Virtual Machines
Mon 03/22 Microkernels & Proof Carrying Code
SigOps HoF papers. 20 Years of L4 Microkernels Liedtke95, Necula96
Wed 03/24 seL4: Formal Verification of an OS Kernel
SigOps HoF paper. System code verification with Serval (SOSP'19 best paper) Klein09
Fri 03/26 Multicore Kernels
SOSP'13 best paper. LegoOS for disaggregated resources (OSDI'18 best paper) Clements15
Mon 03/29 Virtual Machines - I
SigOps HoF paper Bugnion97
Wed 03/31 Virtual Machines - II
SigOps HoF paper Waldspurger02
Fri 04/02 Day of meetings to discuss Projects
Mon 04/05 No CMU classes
Part 6: Big Data Systems
Wed 04/07 Key-Value Stores: Chord & Dynamo
Chord paper. SigOps HoF papers DeCandia07
Wed 04/07 Project: Interim Report
Interim Project Report due by 11:59 pm
Fri 04/09 Spanner: Google's Globally-Distributed Database
OSDI'12 best paper Corbett12
Mon 04/12 MapReduce & TensorFlow
OSDI'16 paper. Dean04 (SigOps HoF paper) Abadi16
Part 7: Security and Privacy
Wed 04/14 Worms & Untrusted Servers
OSDI'16 best paper. The Internet Worm Hunt16
Fri 04/16 No class - Spring Carnival
Mon 04/19 Midterm #2
Wed 04/21 No class
Fri 04/23 Day of meetings to discuss Projects
Mon 04/26 No class
Wed 04/28 No class
Fri 04/30 No class
Mon 05/03 No class
Wed 05/05 No class
Fri 05/07 No class
Mon 05/10 Project: Presentations
Tue 05/11 Project: Presentations
Thu 05/13 Project: Final Report
Final Report due by 11:59 pm

Last updated: 2021-04-14 03:31:55 -0400 [validate xhtml]