Барьерная синхронизация (3 алгоритма) — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Определение и полезность)
(Определение и полезность)
 
(нет различий)

Текущая версия на 19:19, 11 февраля 2019

Определение и полезность[править]

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

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

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

Алгоритмы[править]

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