COS-518 Syllabus

Overview

Prerequisites

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.

Textbooks

There are no official texts for the course. However, we suggest two texts to accompany the content in this class.

For reference, both of these texts have been placed on reserve at the library for this class.

Schedule

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]