Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Begin ifthis - инициатор then. beginstate := cand ; send (token, this) to Nextp ; receive (token, q) ;



begin state:= cand; send (token, this) to Nextp; receive (token, q);

Whileq ¹ this do

begin Listp:= Listp È {q};

send (token, q) to Nextp; receive (token, q);

end;

if this = max (Listp) then state:= coordinator

else state:= lost

End

else repeat receive (token, q); send (token, q) to Nextp;

if state = sleep then state:= lost

until false

End

Так как порядок маркеров в кольце сохраняется (из предположения о каналах FIFO), и инициатор q отправляет (token, q) до того какполучит (token, p), то инициатор p получает (token, q) прежде, чем вернется (token, p). Отсюда следует, что каждый инициатор p заканчивается со списком Listp, совпадающим с множеством всех инициаторов, и единственным выбираемым сайтом становится инициатор с наибольшей оценкой.

Все не-инициаторы приходят в состояние проигравший, но навсегда остаются в ожидании сообщений (token, r). Ожидание может быть прервано, если лидер посылает по кольцу специальный маркер, чтобы объявить об окончании выборов.

Алгоритм Чанга-Робертса, приведенный ниже, устраняет из кольца маркеры тех сайтов, для которых очевидно, что они проиграют выборы. В этом смысле он улучшает алгоритм Лелана. Т.е. инициатор p удаляет из кольца маркер (token, q), если est (q) < est (p). Инициатор p становится проигравшим, когда получает маркер с идентификатором q, таким что est (q) > est (p), или координатором, когда он получает маркер с идентификатором p.

var state: (sleep, coordinator, lost);





Дата публикования: 2014-11-18; Прочитано: 278 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...