292
правки
Изменения
→Пример
== Пример ==
Пусть есть три процесса: $P$, $Q$, $R$ (пронумерованных так же) и они отправили друг другу сообщения. Процесс $R$ только что получил сообщение:
[[Файл:distributed-order-cc-algo-1.png|400px]]
Так как у процесса $R$ матрица $M$ нулевая, а $W_{23}=1$, то FIFO-порядок не нарушен. Однако в столбце 3 (сообщения, посланные процессу $R$) в строчке 1 (от процесса $P$) есть единица, что больше, чем ноль. То есть $P$ послал сообщение $R$, $Q$ про это знает, но $R$ ещё это сообщение не получил. Тогда надо ждать сообщения, матрицу пока не обновляем.
[[Файл:distributed-order-cc-algo-2.png|400px]]
Тут как раз получили это сообщение. Столбец 3 совпадает, а в строчке 1 у нас на единицу больше, т.е. FIFO между $P$ и $Q$ не нарушен. Можно обработать сообщение и обновить матрицу $M$. Теперь можно обработать то сообщение, которое было получено первым:
[[Файл:distributed-order-cc-algo-3.png|400px]]