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









