Sr-7-wyk-2.0-Slajd21

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 Suzuki-Kasami – wprowadzenie (3)

Algorytm Suzuki-Kasami – wprowadzenie (3)


Procesy z zaległymi żądaniami sekcji krytycznej są określane przy użyciu zawartości żetonu. Żeton składa się z kolejki żetonu Q oraz tablicy żetonu LN , gdzie Q jest kolejką procesów żądających, natomiast LN jest tablicą o rozmiarze N , taką że LN[j ] jest liczbą porządkową żądania, które proces Pj wykonał jako ostatnie. Po wykonaniu swojej sekcji krytycznej, proces Pi aktualizuje LN[i ]:= RNi[i ], aby wskazywało, że żądanie odpowiadające liczbie porządkowej RNi[i ] zostało spełnione. Tablica żetonu LN[1 .. N ] pozwala procesowi ustalić czy jakiś inny proces ma zaległe żądanie sekcji krytycznej. Zauważmy, że jeżeli dla procesu Pi mamy RNi[j ]= LN[j ]+ 1 , wtedy proces Pj jest w stanie żądania żetonu. Po wykonaniu sekcji krytycznej, proces sprawdza ten warunek dla wszystkich wartości j , żeby określić wszystkie procesy, które żądają żetonu oraz umieszcza ich identyfikatory w kolejce Q , jeżeli do tej pory ich tam nie ma. Następnie proces ten wysyła żeton do procesu, który znajduje się na początku kolejki Q .


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