Изменения

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

Алгоритм Скина

1135 байт добавлено, 11:28, 3 июня 2019
Нет описания правки
[[Категория: Параллельное программирование]]
'''Алгоритм Скина''' полного порядка сообщений<ref>https://doi.org/10.1109/TSE.1983. Используются 236608</ref> для организации [[Логические часы ЛампортаОбщий порядок сообщений|логические часы Лампортаобщего порядка сообщений]].# Инициатор отправляет сообщение и время# При приеме сообщения процесс помечает сообщение как недоставленное и отправляет свое время инициатору# Когда инициатору вернулись все сообщенияЛучше, он выбирает максимальное время и снова отправляет сообщение (уже финальную версию)# При приеме финального сообщения оно помечается как доставленное и доставляется получателючем [[Алгоритм Лампорта]], если оно имеет минимальное время в очереди потому что для multicast сообщенийобщается только с получателями, а не со всеми процессами системы.
Используются [[Логические часы Лампорта|логические часы Лампорта]].Ниже алгоритм расписан чуть подробнее, чем в Garg и на лекции, но вроде всё ещё верно.# Инициатор отправляет сообщение и своё время (''предварительное время сообщения'') всем получателям# При приеме сообщения процесс запоминает сообщение со времени и отправляет свое время инициатору# Когда инициатору вернулись все сообщения, он выбирает максимальное время из них и снова отправляет сообщение со временем (уже ''финальное'')# Получатель обрабатывает сообщение, если оно помечено как финальное и имеет минимальное финальное время среди всех известных получателю сообщений (и финальных, и нефинальных; иначе может получиться, что финализация сообщений произойдёт в разном порядке у разных получателей и нарушится общий порядок) Полный порядок задается финальными временными метками. Финальные метки нужны, чтобы как-то зависеть от времени получателей.Доказательство на лекции и в Gaarg не приводилось.
292
правки

Навигация