This class is appropriate for graduate students with previous background in systems, especially those interested in systems research. Some familiarity with both system/network programming and scripting languages (e.g., Python, Perl) will be helpful.
There are no official texts for the course. However, we suggest two texts to accompany the content in this class.
This schedule and syllabus are preliminary and likely to change.
Date | Topics | Notes | Readings | Presenter |
---|---|---|---|---|
Part 1: Introduction, system programming, and concurrency | ||||
Tue 09/18 | Course overview and introduction, system design |
Read only 2.1 (pages 7-10) of "Worse is Better" | Hints for Computer System Design, Worse is Better | Freedman |
Thu 09/20 | Managing concurrency via threads |
Lecture notes, type.c, minish.c, redirsh.c, pipesh.c | Using Threads in Interactive Systems, Livelock Avoidance | Freedman |
Tue 09/25 | Managing concurrency via events |
Lecture notes, libasync tutorial | Flash, Tame | Freedman |
Part 2: Distributed and networked systems | ||||
Thu 09/27 | RPCs and Remote Objects |
For newer paper on remote objects, see Java RMI | Implementing RPCs, Network Objects | Keller |
Tue 10/02 | Scalable and fast servers |
Porcupine, OKWS | Freedman/Ihm | |
Thu 10/04 | Distributed indexing and DHTs |
A more systems-based discussion of using consistent hashing can be found here. Simplified theory description can be found here. Also, for some practical challenges with deploying DHTs, see NTR. | Chash, Chord | Lloyd |
Tue 10/09 | Naming and name lookup |
CoDoNs, I3 | Yu | |
Thu 10/11 | Content distribution |
CoralCDN, BitTyrant | Freedman | |
Tue 10/16 | Multicast |
Bimodal multicast, SplitStream | Huang | |
Thu 10/18 | Distributed computation and debugging |
Project proposals due. | Dryad, Friday | Badam |
Tue 10/23 | System monitoring and recovery |
Pip, Pinpoint, MicroReboot | W. Kim | |
Part 3: Storage systems and consistency | ||||
Thu 10/25 | Advanced file systems |
XFS, Rethink the Sync | Green | |
Tue 10/30 | Fall recess |
No class | ||
Thu 11/01 | Fall recess |
No class | ||
Tue 11/06 | Consistency |
Two-phase commit, HARP | H. Kim | |
Thu 11/08 | Network and distributed file systems |
LBFS, Zebra | Golightly | |
Thu 11/15 | Large storage arrays and file systems |
Notice that 11/13 and 11/15 dates switched. | FAB, Google FS | Chen |
Part 4: Fault-tolerant systems | ||||
Tue 11/13 | Ordering, time, and consensus |
Skip 6.2, 6.3, 7, and appendix in "Unreliable Failure Detectors". Notice that 11/13 and 11/15 dates switched. | Lamport clocks, FLP, Unreliable failure detectors | Eisenstat |
Tue 11/20 | Consensus algorithms |
Alternative description of Paxos can be found here. | Paxos, Chubby lock service | Zhu |
Thu 11/22 | Thanksgiving recess |
No class | ||
Tue 11/27 | Virtual synchrony |
See Birman '94 for response to "Limitations" paper. | ISIS, Limitations of CATOCS | Kumar |
Thu 11/29 | Byzantine techniques 1 |
Byzantine-Generals, Practical BFT | Koukoumidis | |
Tue 12/04 | Byzantine techniques 2 |
BAR Fault Tolerance, BFT2F | Sen | |
Part 5: Operating systems | ||||
Thu 12/06 | OS Kernels |
uKernel Performance, Flux toolkit | Sevinc | |
Tue 12/11 | Virtual Memory |
UVM, Mach | Jung | |
Thu 12/13 | Extensible Kernels |
Exokernel, SPIN | Ihm/Freedman | |
Mon 12/17 | Virtual machines |
Class meets on Monday due to winter break | ESX, Xen | Terrace |
Fri 01/11 | Project presentations |
Class meets Friday, 11:00am - 3:30pm. Lunch served. | ||
Tue 01/15 | Final projects due |
Dean's date | ||
Fri 01/18 | Project reviews due |
Last updated: Wed Dec 12 13:11:47 EST 2007 [validate xhtml]