Барьерная синхронизация (3 алгоритма) — различия между версиями
Yeputons (обсуждение | вклад) (→Определение и полезность) |
Yeputons (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Определение и полезность == | == Определение и полезность == | ||
− | + | {{Определение | |
− | Интервал <tex>[G, H]</tex> (<tex>G \subseteq H</tex>) называется барьерно | + | |definition= |
− | + | Интервал <tex>[G, H]</tex> (<tex>G \subseteq H</tex>) называется '''барьерно-синхронизированным''', если для любых событий <tex>e \in G</tex> и <tex>f \notin H</tex> верно, что $e \rightarrow f$. | |
+ | }} | ||
+ | Другими словами, все события слева от интервала произошло до всех событий справа от интервала. | ||
Это сильнее [[Согласованный интервал|согласованных интервалов]]: те требуют лишь отсутствия стрелок справа налево (коих в барьере не может быть, потому что есть вообще все возможные стрелки слева направо, а в две стороны стрелки не бывает). | Это сильнее [[Согласованный интервал|согласованных интервалов]]: те требуют лишь отсутствия стрелок справа налево (коих в барьере не может быть, потому что есть вообще все возможные стрелки слева направо, а в две стороны стрелки не бывает). | ||
− | Как следствие, внутри любого барьерно- | + | Как следствие, внутри любого барьерно-сихнронизированного интервала тоже есть согласованный срез (где-то, не знаем, где). |
− | А искать такой интервал намного проще, чем [[Алгоритм Чанди-Лампорта|искать срез]] и по коду, и по | + | А искать такой интервал намного проще, чем [[Алгоритм Чанди-Лампорта|искать согласованный срез]] и по коду, и по количеству сообщений (линия вместо квадрата). |
== Алгоритмы == | == Алгоритмы == | ||
Строка 12: | Строка 14: | ||
*[[Централизованный]]: все посылают токен координатору, затем он посылает всем. <tex>O(N)</tex> сообщений, низкая задержка; | *[[Централизованный]]: все посылают токен координатору, затем он посылает всем. <tex>O(N)</tex> сообщений, низкая задержка; | ||
* Каждый посылает каждому токен. <tex>O(N^2)</tex> сообщений, низкая задержка; | * Каждый посылает каждому токен. <tex>O(N^2)</tex> сообщений, низкая задержка; | ||
− | * Token по кольцу, <tex>O(N)</tex> сообщений, высокая задержка. | + | * Token по кольцу два раза, <tex>O(N)</tex> сообщений, высокая задержка. |
[[Файл:Token_ring.png|200px|thumb|left]] | [[Файл:Token_ring.png|200px|thumb|left]] |
Версия 09:14, 3 июня 2019
Определение и полезность
Определение: |
Интервал | ( ) называется барьерно-синхронизированным, если для любых событий и верно, что $e \rightarrow f$.
Другими словами, все события слева от интервала произошло до всех событий справа от интервала. Это сильнее согласованных интервалов: те требуют лишь отсутствия стрелок справа налево (коих в барьере не может быть, потому что есть вообще все возможные стрелки слева направо, а в две стороны стрелки не бывает).
Как следствие, внутри любого барьерно-сихнронизированного интервала тоже есть согласованный срез (где-то, не знаем, где). А искать такой интервал намного проще, чем искать согласованный срез и по коду, и по количеству сообщений (линия вместо квадрата).
Алгоритмы
- Централизованный: все посылают токен координатору, затем он посылает всем. сообщений, низкая задержка;
- Каждый посылает каждому токен. сообщений, низкая задержка;
- Token по кольцу два раза, сообщений, высокая задержка.