Sr-7-wyk-2.0-Slajd3
Algorytm tyrana
Algorytm tyrana (ang. bully algorithm ) jest pierwszym z dwóch algorytmów elekcji, które zaprezentujemy.
Kiedy proces zauważa, że koordynator nie odpowiada już na żądania, rozpoczyna elekcję.
Proces P wysyła wiadomość ELEKCJA do wszystkich procesów z wyższą liczbą. Jeżeli nikt nie odpowiada, P wygrywa elekcję i staje się koordynatorem. Jeżeli natomiast odpowie jeden z procesów o wyższej liczbie, to ten proces przejmuje zadanie.
W dowolnym momencie proces może otrzymać wiadomość ELEKCJA od jednego z procesów o niższej liczbie. Kiedy taka wiadomość dotrze, odbiorca odsyła z powrotem do nadawcy wiadomość potwierdzającą, że działa i przejmuje kontrolę. Odbiorca podtrzymuje wtedy proces elekcji, jeżeli jej nie przeprowadzał do tej pory.
W końcu wszystkie procesy za wyjątkiem jednego zaprzestają elekcji i właśnie ten jedyny proces staje się koordynatorem. Ogłasza on następnie swoje zwycięstwo poprzez rozesłanie do wszystkich procesów wiadomości z informacją, że jest nowym koordynatorem.