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

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

Обязательный курс для магистров 521 группы 10 семестра обучения.

Курс читает профессор В. А. Захаров.

Лекционная нагрузка — 48 ч., семинары — 16 ч.

ЗАДАЧИ К ЭКЗАМЕНУ.


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. The Phase algorithm. Phinn's algorithm. Traversal algorithms. Depth-first-search traversal. Awerbuch's and Cidon's algorithms. Lecture 7.
  7. Задача избрания лидера. Избрание лидера на кольцах: алгоритм Ченя-Робертса, оптимальный алгоритм Патерсона –Долева-Клейва-Роде. Избрание лидера в произвольных сетях: алгоритм Галладжера-Хамблета-Спиры, алгоритм Кораха-Каттена-Морана.
  8. Задача обнаружения завершения вычисления. Алгоритм Дейкстры-Шолтена. Алгоритм Шави-Франчеза. Алгоритм Сафры. Алгоритм возвращения кредитов. Алгоритм Раны.
  9. Задача сохранения моментального состояния. Алгоритм Чанди-Лампорта. Алгоритм Лаи-Янга. Применение алгоритмов обнаружения моментальной разметки и завершения вычислений для выявления блокировки вычислений.

    Часть 4. Вопросы надежности распределенных алгоритмов.

  10. Задача обеспечения отказоустойчивости распределенных систем. Невозможность построения робастных асинхронных систем. Синхронные робастные алгоритмы принятия решения. Использование криптографических примитивов для повышения отказоустойчивости.

Литература

  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.