Алгоритм для FIFO порядка — различия между версиями
Yeputons (обсуждение | вклад) (Новая страница: «Этот алгоритм берёт систему с асинхронным порядком и начинает гарантировать в ней Иера…») |
Yeputons (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Этот алгоритм берёт систему с асинхронным порядком и начинает гарантировать в ней [[Иерархия порядков сообщений#FIFO|FIFO-порядок]]. | Этот алгоритм берёт систему с асинхронным порядком и начинает гарантировать в ней [[Иерархия порядков сообщений#FIFO|FIFO-порядок]]. | ||
− | Алгоритм FIFO основан на нумерации сообщений. | + | Алгоритм FIFO основан на нумерации сообщений: |
+ | * Для каждой пары процессов нумеруем отправляемые сообщения натуральными числами. | ||
+ | * Отправитель знает номер отправленного сообщения, получатель знает номер следующего ожидаемого сообщения. | ||
+ | * К каждому сообщению прикрепляется номер. | ||
+ | * Если получатель получил "неожиданное" сообщение, то он складывает его в очередь и ждёт. Обрабатывает только когда подойдёт нужный номер. | ||
+ | |||
+ | В худшем случае надо хранить много сообщений, но что поделать. |
Версия 09:55, 3 июня 2019
Этот алгоритм берёт систему с асинхронным порядком и начинает гарантировать в ней FIFO-порядок.
Алгоритм FIFO основан на нумерации сообщений:
- Для каждой пары процессов нумеруем отправляемые сообщения натуральными числами.
- Отправитель знает номер отправленного сообщения, получатель знает номер следующего ожидаемого сообщения.
- К каждому сообщению прикрепляется номер.
- Если получатель получил "неожиданное" сообщение, то он складывает его в очередь и ждёт. Обрабатывает только когда подойдёт нужный номер.
В худшем случае надо хранить много сообщений, но что поделать.