Lecture Notes

Lectures 15, 21, and 22 were given by guest lecturer Dr. Victor Luchangco of Sun Microsystems, and are used with permission.

1 Course overview. Synchronous networks. Leader election in synchronous ring networks. ( PDF)
2 Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths. ( PDF)
3 Spanning trees. Minimum spanning trees. ( PDF)
4 Fault-tolerant consensus. Link failures: the two generals problem. Process failures (stopping, Byzantine). Algorithms for agreement with stopping and Byzantine failures. Exponential information gathering. ( PDF)
5 Number-of-processor bounds for Byzantine agreement. Weak Byzantine agreement. Time bounds for consensus problems. ( PDF)
6 k-set-agreement. Approximate agreement. Distributed commit. ( PDF)
7 Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms. ( PDF)
8 Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast. ( PDF)
9 Spanning trees. Gallager et al. minimum spanning trees. ( PDF)
10 Synchronizers. Synchronizer applications. Synchronous vs. asynchronous distributed systems. ( PDF)
11 Time, clocks, and the ordering of events. State-machine simulation. Vector timestamps. ( PDF)
12 Stable property detection. Distributed termination. Global snapshots. Deadlock detection. ( PDF)
13 Asynchronous shared-memory systems. The mutual exclusion problem. Mutual exclusion algorithms. ( PDF)
14 More mutual exclusion algorithms. Bounds on shared memory for mutual exclusion. Resource allocation. The Dining Philosophers problem. ( PDF)
15 Shared-memory multiprocessors. Contention, caching, locality. Practical mutual exclusion algorithms. Reading/writing locks. ( PDF)
16 Impossibility of consensus in asynchronous, fault-prone, shared-memory systems. ( PDF)
17 Atomic objects ( PDF)
18 Atomic snapshot algorithms. Atomic read/write register algorithms. ( PDF)
19 List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms. ( PDF)
20 Transactional memory: obstruction-free and lock-based implementations. ( PDF)
21 Wait-free computability. The wait-free consensus hierarchy. ( PDF)
22 Wait-free vs. f-fault-tolerant atomic objects. Boosting fault-tolerance. ( PDF)
23 Asynchronous network model vs. asynchronous shared-memory model. Impossibility of consensus in asynchronous networks. Failure detectors and consensus. Paxos consensus algorithm. ( PDF)
24 Self-stabilizing algorithms ( PDF)
25 Timing-based systems. Modeling and verification. Timing-based algorithms for mutual exclusion and consensus. Clock synchronization. ( PDF)

Course Info

Learning Resource Types

assignment Problem Sets
notes Lecture Notes