SES # | TOPICS | READINGS |
---|---|---|

1 | Course overview. Synchronous networks. Leader election in synchronous ring networks. | [Lynch] Chapters 1 and 2, sections 3.1 to 3.5. |

2 | Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths. | [Lynch] Section 3.6, and sections 4.1 to 4.3. |

3 | Spanning trees. Shortest paths (Bellman-Ford). Minimum spanning trees. Maximal independent sets (summary). | [Lynch] Sections 4.3 to 4.5 (skip 4.5.3). |

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. | [Lynch] Sections 5.1 and 6.1 to 6.3. |

5 | Number-of-processor bounds for Byzantine agreement. Weak Byzantine agreement. Time bounds for consensus problems. | [Lynch] Sections 6.4 to 6.7. Aguilera, Marcos Kawazoe, and Sam Toueg. "A Simple Bivalency Proof that ## OptionalKeidar, Idit, and Sergio Rajsbaum. "A Simple Proof of the Uniform Consensus Synchronous Lower Bound." |

6 | k-set-agreement. Approximate agreement. Distributed commit. | [Lynch] Chapter 7. |

7 | Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms. | [Lynch] Chapter 8. |

8 | Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast. | [Lynch] Chapters 14 and 15. |

9 | Spanning trees. Gallager et al. minimum spanning trees. | [Lynch] Sections 15.3 to 15.5. Gallager, R. G., P. A. Humblet, and P. M. Spira. "A Distributed Algorithm for Minimum-Weight Spanning Trees." |

10 | Synchronizers. Synchronizer applications. Synchronous vs. asynchronous distributed systems. | [Lynch] Chapter 16. |

11 | Time, clocks, and the ordering of events. State-machine simulation. Vector timestamps. | [Lynch] Chapter 18. Lamport, Leslie. "Time, Clocks, and the Ordering of Events in a Distributed System." Mattern, Friedemann. "Virtual Time and Global States of Distributed Systems." |

12 | Stable property detection. Distributed termination. Global snapshots. Deadlock detection. | [Lynch] Chapter 19. |

13 | Asynchronous shared-memory systems. The mutual exclusion problem. Mutual exclusion algorithms: Dijkstra’s algorithm, Peterson’s algorithm, and Lamport’s Bakery algorithm. | [Lynch] Chapter 9 and sections 10.1 to 10.7. |

14 | More mutual exclusion algorithms. Bounds on shared memory for mutual exclusion. Resource allocation. The Dining Philosophers problem. | [Lynch] Sections 10.6 to 10.8, and 10.9. |

15 | Shared-memory multiprocessors. Contention, caching, locality. Practical mutual exclusion algorithms. Reading/writing locks. | [Herlihy and Shavit] Chapter 7. [Lynch] Chapter 11. Mellor-Crummey, John M., and Michael L. Scott. "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors." ## OptionalMagnussen, Peter, Anders Landin, and Erik Hagersten. "Queue Locks on Cache Coherent Multiprocessors." |

16 | Impossibility of consensus in asynchronous, fault-prone, shared-memory systems. | [Lynch] Chapters 11 and 12. Fischer, Michael J., Nancy A. Lynch, and Michael S. Paterson. "Impossibility of Distributed Consensus with One Faulty Process." |

17 | Atomic objects | [Lynch] Chapter 13 (sections 13.1 and 13.2). |

18 | Atomic snapshot algorithms. Atomic read/write register algorithms. | [Lynch] Chapter 13 (sections 13.3 and 13.4). |

19 | List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms. | [Herlihy and Shavit] Chapter 9. |

20 | Transactional memory: obstruction-free and lock-based implementations. | [Herlihy and Shavit] Chapter 18. [Guerraoui and Kapalka] Chapters 1 to 4. |

21 | Wait-free computability. The wait-free consensus hierarchy. | Herlihy, Maurice. "Wait-Free Synchronization." [Attiya and Welch] Chapter 15. |

22 | Wait-free vs. f-fault-tolerant atomic objects. Boosting fault-tolerance. | Borowsky, Elizabeth, Eli Gafni, Nancy Lynch, and Sergio Rajsbaum. "The BG Distributed Simulation Algorithm." Attie, Paul, Rachid Guerraoui, Petr Kouznetsov, Nancy Lynch, and Sergio Rajsbaum. "The Impossibility of Boosting Distributed Service Resilience." Submitted for journal publication, September 2009. Chandra, Tushar D., Vassos Hadzilacos, Prasad Jayanti, and Sam Toueg. "Generalized Irreducibility of Consensus and the Equivalence of |

23 | Asynchronous network model vs. asynchronous shared-memory model. Impossibility of consensus in asynchronous networks. Failure detectors and consensus. Paxos consensus algorithm. | [Lynch] Chapter 17. Lamport, Leslie. "The Part-Time Parliament." |

24 | Self-stabilizing algorithms | [Dolev] Chapter 2. |

25 | Timing-based systems. Modeling and verification. Timing-based algorithms for mutual exclusion and consensus. Clock synchronization. | [Lynch] Chapters 23 to 25. [Attiya and Welch] Section 6.3 and chapter 13. |