Sr-7-wyk-2.0-Slajd17
Algorytm Maekawy
W pierwszym kroku algorytmu wzajemnego wykluczania Maekawy proces Pi , który ubiega się o wejście do sekcji krytycznej, rozsyła ŻĄDANIE(i ) do wszystkich procesów, od których wymaga pozwolenia (procesy ze zbioru żądań Ri procesu Pi ).
Kiedy proces Pj otrzyma komunikat ŻĄDANIE(i ), wysyła ODPOWIEDŹ(j ) do procesu Pi pod warunkiem, że nie wysłał już komunikatu z odpowiedzią od czasu otrzymania ostatniej wiadomości ZWOLNIJ . W przeciwnym wypadku komunikat z żądaniem trafia do kolejki, w celu jego późniejszego rozpatrzenia.
W momencie kiedy proces Pi otrzyma komunikaty typu ODPOWIEDŹ od wszystkich procesów ze zbioru Ri , może uruchomić swoją sekcję krytyczną.
Po wykonaniu sekcji krytycznej, proces Pi wysyła wiadomości ZWOLNIJ(i ) do wszystkich procesów w Ri . W wypadku kiedy proces Pj otrzyma komunikat ZWOLNIJ(i ) od procesu Pi , wysyła ODPOWIEDŹ do następnego oczekującego procesu, który jest w jego kolejce i usuwa go z niej. Jeżeli kolejka jest pusta, wtedy proces aktualizuje swój stan, tak aby odzwierciedlał fakt, iż proces nie wysłał żadnego komunikatu ODPOWIEDŹ .