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