Pr-1st-1.1-m05-Slajd18

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przykład – model OR

Przykład – model OR

Kolejny z grafów przedstawia zakleszczenie w modelu OR. Zbiory warunkujące to:

𝒟1={P4,P5},
𝒟2={P4},
𝒟3={P2},
𝒟4={P2,P3}. 

Predykat predykat deadlock() zachodzi tu dla ={P2,P3,P3}

Przyjmijmy teraz dla urozmaicenia, że w przetwarzaniu z następnego grafu kanały wejściowe procesów P1, P3, P4 i P5 są puste. W kanale C3,2 jest natomiast dostępna wiadomość, ale proces P2 nie oczekuje wiadomości od procesu P3. Przyjmijmy ponadto, że wiadomość M wysłana z P1 do P2 jest właśnie transmitowana (in-transit2[1]=True) lecz nie jest jeszcze dostępna. Ponieważ jednak P1∉𝒟2, nadejście wiadomości M, nie uaktywni procesu P2. W rozważanym stanie, jedynie proces P1 może być ewentualnie uaktywniony przez P5. W konsekwencji, jeżeli modelem żądań jest model OR, to deadlock()=True dla ={P2,P3,P3}.

Zauważmy też jeszcze, że gdyby proces P1 żądał jednocześnie wiadomości zarówno od P5 jak i P4 (jak to ma miejsce w modelu AND), to zbiór procesów zakleszczonych obejmowałby: P1, P2, P3 i P4.


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