Pr-1st-1.1-m05-Slajd18

Z Studia Informatyczne
Wersja z dnia 17:22, 2 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 – 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 Parser nie mógł rozpoznać (nieznana funkcja „\math”): {\displaystyle \mathcal{B} = \{ P_2, P_3, P_3 \} <\math> Przyjmijmy teraz dla urozmaicenia, że w przetwarzaniu z następnego grafu kanały wejściowe procesów <math>P_1} , 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ść Parser nie mógł rozpoznać (błąd składni): {\displaystyle M<math> wysłana z <math>P_1} 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 Parser nie mógł rozpoznać (nieznana funkcja „\math”): {\displaystyle \mathcal{B} = \{ P_2, P_3, P_3 \}<\math>. Zauważmy też jeszcze, że gdyby proces <math>P_1} żą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 >>