Лектор: профессор В.А. Захаров

Цель учебного курса – ознакомить студентов, специализирующихся в области программирования, с:

  • основными алгоритмическими задачами, возникающими при проектировании распределенных программ (сетевых протоколов, встроенных систем, многопроцессорных вычислительных систем, параллельных программ),
  • наиболее распространенными алгоритмами решения этих задач,
  • математическими моделями и методами, используемыми для анализа распределенных алгоритмов.

Основное внимание уделяется вопросам доказательства корректности проектируемых алгоритмов и оценкам их эффективности.

Задачами данного курса являются:

  1. освоение студентами базовых знаний (понятий, концепций, методов и моделей) в области построения и анализа распределенных алгоритмов;
  2. приобретение теоретических знаний и практических умений и навыков решения задач построения и анализа распределенных алгоритмов;
  3. оказание консультаций и помощи студентам в проведении собственных теоретических исследований в указанной выше области программирования.

Содержание дисциплины:

  1. Математическая модель распределенных алгоритмов.
  2. Коммуникационные протоколы.
  3. Алгоритмы маршрутизации.
  4. Волновые алгоритмы.
  5. Алгоритмы избрание лидера.
  6. Алгоритмы обнаружение завершения вычислений.
  7. Алгоритмы сохранение моментального состояния.
  8. Обеспечение отказоустойчивости.
  9. Обнаружение неисправностей в распределенных системах.
  10. Стабилизирующиеся алгоритмы.

Литература:

  1. Тель Ж. Введение в распределенные алгоритмы. М. Изд-во МЦНМО, 2009.
  2. N.A. Lynch. Distributed Algorithms. Morgan Kaufmann Series in Data Management Systems. 1996.