Алгоритм для синхронного порядка

Материал из Викиконспекты
Версия от 09:52, 3 июня 2019; Yeputons (обсуждение | вклад) (Новая страница: «Этот алгоритм берёт систему с асинхронным(?) порядком и начинает гарантировать в ней Ие…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Этот алгоритм берёт систему с асинхронным(?) порядком и начинает гарантировать в ней синхронный порядок.

Алгоритм для синхронного порядка основан на иерархии процессов. Упорядочим процессы по номеру, назовем сообщение большим, если номер отправителя больше номера получателя, и малым иначе. Процесс может быть в активном или пассивном состоянии. Изначально все активны. Процесс может отправить большое сообщение, только если он активен. После отправки он становится пассивным и не может ни отправлять, ни принимать сообщения, пока не получит от получателя ack.

Чтобы отправить сообщение большему процессу [math]P_j[/math], процесс [math]P_i[/math] сначала посылает служебное сообщение, запрос. В ответ [math]P_j[/math] отправляет разрешение; он может сделать это только в активном состоянии. Разрешив, он становится пассивным и остается в этом состоянии, пока не получает сообщение, которое разрешил.