Алгоритм Лампорта
Версия от 20:07, 26 июня 2010; Andrey Danilchenko (обсуждение | вклад)
Алгоритм организует полный порядок на сообщениях. Модифицируем алгоритм Лампорта взаимного исключения. Будем предполагать FIFO-порядок сообщений. Также будем предполагать, что сообщения транслируются всем процессам. Каждый процесс содержит логические часы и очередь отправленных сообщений.
Алгоритм действует по следующим правилам:
- Чтобы отправить сообщение процесс транслирует свое время всем остальных (шаг аналогичен запросу на вход в критическую секцию)
- При приеме сообщения оно сохраняется вместе со временем и отправляется подтверждение, также помеченное временем
- Сообщение может быть доставлено процессу, если от всех остальных потоков получены сообщения с большей временной меткой (шаг аналогичен работе критической секции)