Pr-1st-1.1-m06-Slajd22

Z Studia Informatyczne
Wersja z dnia 15:56, 7 wrz 2006 autorstwa Szopen (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przykład działania dwufazowego algorytmu detekcji zakleszczenia rozproszonego

Przykład działania dwufazowego algorytmu detekcji zakleszczenia rozproszonego


Przeanalizujmy działanie tego algorytmu na konkretnym przykładzie przedstawionym w prezentacji. Przyjmiemy ponownie dla uproszczenia, że warunkiem uaktywnienia procesu jest otrzymanie potwierdzenia GRANT od wszystkich procesów tworzących zbiór warunkujący. Niech Q1 będzie inicjatorem procesu detekcji zakleszczenia rozproszonego, a P4 - jedynym aktywnym procesem. Najpierw, inicjator Qα=Q1 przekazuje do monitorów procesów tworzących jego zbiór warunkujący wiadomości typu FLOOD, każdą z wagą 1/3. Ponieważ proces P4 jest aktywny, monitor Q4 może od razu wysłać w odpowiedzi wiadomość typu ECHO, z wagą 1/3 równą wadze otrzymanej wiadomości typu FLOOD. Z kolei monitor Q3 przekazuje wiadomość FLOOD do następnika, a Q2 przekazuje wiadomość typu FLOOD do Q3 i Q4. Monitor Q2 dzieli oczywiście wagę otrzymanej wiadomości FLOOD na pół, a więc wysyła wiadomości z wagami 1/6. W następnym kroku, monitor Q4 jako skojarzony z procesem aktywnym, odpowiada wiadomościami typu ECHO do Q3 i Q2, z wagami równymi odpowiednio 1/3 i 1/6. Monitor Q3 wysyła natomiast wiadomość typu SHORT bezpośrednio do inicjatora w odpowiedzi na odebranie kolejnej wiadomości typu FLOOD od Q2. Następnie, po otrzymaniu wiadomości typu ECHO z wagą 1/3, Q3 przekazuje tę wiadomość do swoich poprzedników Q1 i Q2 , dzieląc na pół otrzymaną wagę. Ponieważ pojedyncza wiadomość aplikacyjna typu GRANT symulowana tu przez wiadomość typu ECHO od Q4 nie byłaby wystarczająca do uaktywnienia P2, Q2 wysyła wiadomość typu SHORT z wagą 1/6 do inicjatora Q1. W ostatnim kroku, po otrzymaniu wiadomości ECHO od Q3, monitor Q2 przekaże dalej wiadomość typu ECHO do Q1. Algorytm kończy się, gdy inicjator Q1 otrzyma z powrotem wiadomości z sumaryczną wagą równą 1.

<< Poprzedni slajd | Spis treści | Następny slajd >>