This calendar provides the lecture topics, along with assignment due dates. Lectures given by Professors Lampson and Rinard are shown as “L” and “R,” respectively, in the Lecturer column. The Handouts column indicates materials distributed in class.
LEC # | LECTURER | HANDOUTS # | TOPICS | PROBLEM SET # OUT | PROBLEM SET # DUE |
---|---|---|---|---|---|
1 | L | Overview. The Spec language, state machine semantics, examples of specifications and code | 1 | ||
1 2 3 4 5 |
Course information Background Introduction to Spec Spec reference manual Examples of specs and code |
||||
2 | L | Spec and code for sequential programs. Correctness notions and proofs. Proof methods: abstraction functions and invariants | |||
6 | Abstraction functions | ||||
3 | L | File systems 1: Disks, simple sequential file system, caching, logs for crash recovery | 2 | 1 | |
7 | Disks and file systems | ||||
4 | L | File systems 2: Copying file system | |||
5 | R | Proof methods: History and prophecy variables; abstraction relations | 3 | 2 | |
8 | History variables | ||||
6 | R | Semantics and proofs: Formal sequential semantics of Spec | |||
9 | Atomic semantics of Spec | ||||
7 | L | Performance: How to get it, how to analyze it | 4 | 3 | |
10 | Performance | ||||
11 | Paper: Michael Schroeder and Michael Burrows. “Performance of Firefly RPC,” ACM Transactions on Computer Systems 8, 1, February 1990, pp 1-17. | ||||
8 | L | Naming: Specs, variations, and examples of hierarchical naming | Form groups | ||
12 | Naming | ||||
13 | Paper: David Gifford, et al. “Semantic file systems,” Proc.13th ACM Symposium on Operating System Principles, October 1991, pp 16-25. | ||||
9 | R | Concurrency 1: Practical concurrency, easy and hard. Easy concurrency using locks and condition variables. Problems with it: scheduling, deadlock | 5 | 4 | |
14 | Practical concurrency | ||||
15 | Concurrent disks | ||||
16 | Paper: Andrew Birrell, “An Introduction to Programming with Threads_,” Digital Systems Research Center Report 35_, January 1989. | ||||
10 | R | Concurrency 2: Concurrency in Spec: threads and non-atomic semantics. Big atomic actions. Safety and liveness. Examples of concurrency | |||
17 | Formal concurrency | ||||
11 | R | Concurrency 3: Proving correctness of concurrent programs: assertional proofs, model checking | 5 | ||
12 | R | Distributed consensus 1. Paxos algorithm for asynchronous consensus in the presence of faults | |||
13 | L | Distributed consensus 2 | Early proposals | ||
18 | Consensus | ||||
14 | R | Sequential transactions with caching | |||
19 | Sequential transactions | ||||
15 | R | Concurrent transactions: Specs for serializability. Ways to code the specs | Late proposals | ||
20 | Concurrent transactions | ||||
16 | R | Distributed transactions: Commit as a consensus problem. Two-phase commit. Optimizations | Late interim reports | ||
27 | Distributed transactions | ||||
17 | R |
Introduction to distributed systems: Characteristics of distributed systems. Physical, data link, and network layers, design principles Networks 1: Links. Point-to-point and broadcast networks |
|||
21 | Distributed systems | ||||
22 | Paper: Michael Schroeder, et al. “Autonet: A high-speed, self-configuring local area network,” IEEE Journal on Selected Areas in Communications 9, 8, Oct 1991, pp. 1318-1335. | ||||
23 | Networks: Links and switches | ||||
18 | L | Networks 2: Links cont’d: Ethernet. Token Rings. Switches. Coding switches. Routing. Learning topologies and establishing routes | |||
19 | L | Networks 3: Network objects and remote procedure call (RPC) | Early interim reports | ||
24 | Network objects | ||||
25 | Paper: Andrew Birrell, et al. “Network objects,” Proc.14th ACM Symposium on Operating Systems Principles, Asheville, NC, December 1993. | ||||
20 | L | Networks 4: Reliable messages. 3-way handshake and clock code. TCP as a form of reliable messages |
Late interim reports |
||
26 | Paper: Butler Lampson. “Reliable messages and connection establishment,” in S. Mullender, ed. Distributed Systems, Addison-Wesley, 1993, pp. 251-281. | ||||
21 | L | Replication and availability: Coding replicated state machines using consensus. Applications to replicated storage | |||
28 | Replication | ||||
29 | Paper: Jim Gray and Andreas Reuter. “Fault tolerance,” in Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993, pp. 93-156. | ||||
22 | R | Caching: Maintaining coherent memory. Broadcast (snoopy) and directory protocols Examples: multiprocessors, distributed shared memory, distributed file systems | |||
30 | Concurrent caching | ||||
23 | Early project presentations | ||||
24 | Early project presentations | ||||
25 | Late project presentations | ||||
26 | Late project presentations | ||||
Final reports due |