Calendar

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