Барьерная синхронизация (3 алгоритма)

Материал из Викиконспекты
Перейти к: навигация, поиск
НЕТ ВОЙНЕ

24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.

Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.

Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.

Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.

Антивоенный комитет России

Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки.

Определение и полезность

Определение:
Интервал [math][G, H][/math] ([math]G \subseteq H[/math]) называется барьерно-синхронизированным, если для любых событий [math]e \in G[/math] и [math]f \notin H[/math] верно, что $e \rightarrow f$.

Другими словами, все события слева от интервала произошло до всех событий справа от интервала. Это сильнее согласованных интервалов: те требуют лишь отсутствия стрелок справа налево (коих в барьере не может быть, потому что есть вообще все возможные стрелки слева направо, а в две стороны стрелки не бывает).

Как следствие, внутри любого барьерно-сихнронизированного интервала тоже есть согласованный срез (где-то, не знаем, где). А искать такой интервал намного проще, чем искать согласованный срез и по коду, и по количеству сообщений (линия вместо квадрата).

Алгоритмы

  • Централизованный: все посылают токен координатору, затем он посылает всем. [math]2N[/math] сообщений, низкая задержка;
  • Каждый посылает каждому токен. [math]N^2[/math] сообщений, низкая задержка;
  • Token по кольцу два раза, [math]2N-1[/math] сообщение, высокая задержка (вроде можно $2N-2$ сообщений).
Token ring.png