Изменения

Перейти к: навигация, поиск

Алгоритм Рикарта-Агравалы

1753 байта добавлено, 15:04, 26 июня 2010
Новая страница: «'''Алгоритм Рикарта-Агравалы''' взаимного исключения: # Когда процесс <tex>Р_i</tex> хочет войти в …»
'''Алгоритм Рикарта-Агравалы''' взаимного исключения:
# Когда процесс <tex>Р_i</tex> хочет войти в критический участок, то рассылает всем сообщение &quot;запрос&quot; с текущей временной меткой
# Когда процесс <tex>P_k</tex> получает от <tex>P_j</tex> запрос войти в критический участок:
#* если он сам не посылал запрос, то посылает отклик
#* если он послал свой запрос, он сравнивает временные метки этих двух запросов и посылает отклик только если у его собственного запроса метка позже (на самом деле, при равенстве меток, нужно проверять, у кого больше номер, т.е. для отсутствия блокировок нужно ввести приоритет на потоках)
#* в остальных случаях процесс <tex>P_k</tex> задерживает отправку отклика
# Процесс может войти в критический участок только после получения откликов ото всех других узлов сети
# После выхода из него он рассылает задержанные отклики на все
ожидающие запросы

Starvation-free. <tex>2*(N-–1)</tex> messages.

Отказ любого узла приводит к зависанию. Решается проблема введением таймаутов.
Анонимный участник

Навигация