Распределенные алгоритмы

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск

Basic Master Course (group 521).

Lecturer V. A. Zakharov.

Lectures — 48 h., Homework — 16 h.


Program of the course

Part 1. Formal Models.

  1. Distributed systems and their generic features. Distributed systems architecture. ISO Open System Interaction standard. Algorithmic problems of distributed computing systems. Specific features of distributed algorithms. Lecture 1.
  2. Formal models of distributed systems. Transition systems. Synchronous and asynchronous message passing. Fairness properties. Dependent and independent events. Causal order of events. Equivalence of execution. Distributed computations. Logical clocks. Lecture 2.

    Part 2. Communication Protocols.

  3. Communication Protocols. Errors in message transmission. Symmetric sliding window protocol: protocol design. Mathematical techniques for proving correctness of distributed algorithms. Correctness of sliding window protocol. Implementation of sliding window protocol. Alternating Bit Protocol. Lecture 3.
  4. A timer-based communication protocol. Protocol design. Correctness of timer-based protocol. Implementation of timer-based protocol. Lecture 4.
  5. Routing problem. Destination-based routing. The all-pairs shortest-path problem. Floyd--Warshall algorithm. Toueg's shortest-path algorithm. Merlin--Segall algorithm. Chandy--Misra algorithm. Lecture 5.

    Part 3. Wave and Election Algorithms.

  6. Wave algorithms: definition, basic properties, applications. The Ring algorithm. The Tree algorithm. The Echo algorithm. Lecture 6.
  7. The Phase algorithm. Phinn's algorithm. Traversal algorithms. Depth-first-search traversal. Awerbuch's and Cidon's algorithms. Lecture 7.
  8. Leader Election Problem. Leader election in rings: Le Lann Algorithm. Cheng-Roberts Algorithm. Paterson/Dolev-Clave-Rode Algorithm. Extinguish effect. Lecture 8.
  9. Leader election in arbitrary networks. Lower bounds. Gallager-Humblet-Spira Algorithm (GHS). Corach-Katten-Moran Algorithm. Lecture 9.

    Part 4. Termination and Deadlock Detection.

  10. Termination detection problem. The Dijkstra-Scholten Algorithm. The Shavit-Francez Algorithm. The Safra's Algorithm. The Credit-Recovery Algorithm. The Rana's Algorithm. Lecture 10.
  11. Snapshot problem. Chandy--Lamport algorithm. Lai--Yang algorithm. Applications of snapshot algorithms. Deadlock detection. Lecture 11.

    Part 4. Fault Tolerance of Distributed Algorithms.

  12. Fault Tolerant Algorithms. Failure Models. Decision Problems. Consensus Problem. Impossibility of Perfect Consensus. On the possibility of Consensus for some Distributed Systems. Consensus Problem for synchronous systems. Lecture 12.


  1. G. Tel. Introduction to Distributed Algorithms. Cambridge University Press. 2000. (русск. пер. Ж. Тель. Введение в распределенные алгоритмы, изд-во МЦНМО, 2009 г., 616 с.)
  2. W. Fokkink. Distributed Algorithms: Intuitive Approach. The MIT Press. 2013. (русск. пер. У. Фоккинк. Распределенные алгоритмв: интуитивный подход., изд-во Питер, 2017 г., 231 с.)
  3. N. Lynch. Distributed Algorithms. Morgan Kaufmann, 1996, 906 pp.