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