Sr-7-wyk-2.0-Slajd11

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

Algorytm Lamporta

Algorytm Lamporta


Gdy proces Pi zamierza wejść do sekcji krytycznej, wysyła wiadomość z żądaniem do wszystkich procesów, które znajdują się wewnątrz jego zbioru żądań Ri . Następnie umieszcza żądanie w swojej kolejce żądań (ts(i ) jest znacznikiem czasowym żądania procesu Pi ). Gdy proces Pj otrzyma żądanie od procesu Pi , odsyła ODPOWIEDŹ oznaczoną znacznikiem czasowym do procesu Pi i umieszcza żądanie procesu Pi w swojej kolejce żądań. Proces Pi rozpoczyna wykonywanie sekcji krytycznej, gdy spełnione są dwa następujące warunki: 1) proces Pi otrzymał wiadomość ze znacznikiem czasowym większym niż ( ts(i ), i ) od wszystkich innych procesów oraz 2) żądanie procesu Pi jest na początku jego własnej kolejki żądań

Po wyjściu z sekcji krytycznej proces Pi usuwa żądanie ze swojej kolejki żądań i wysyła wiadomości ZWOLNIJ oznaczoną znacznikiem czasowym do wszystkich procesów, znajdujących się w jego zbiorze żądań. Jeżeli proces Pj otrzyma wiadomość zwolnij od procesu Pi , usuwa żądanie Pi ze swojej kolejki żądań.

Kiedy proces usuwa pewne żądanie ze swojej kolejki żądań, jego własne żądanie może pojawić się na początku kolejki, umożliwiając mu wejście do sekcji krytycznej. Algorytm wykonuje żądania wejścia do sekcji krytycznej w rosnącym porządku i zgodnie z ich znacznikami czasowymi.


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