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.

1 L

Overview. The Spec language, state machine semantics, examples of specifications and code 1

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

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

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


Early project presentations


Early project presentations


Late project presentations


Late project presentations

Final reports due

Course Info

Learning Resource Types

notes Lecture Notes
assignment_turned_in Problem Sets with Solutions