Pr-1st-1.1-m05-Slajd18: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Szopen (dyskusja | edycje)
Nie podano opisu zmian
m Zastępowanie tekstu – „ </math>” na „</math>”
 
Linia 12: Linia 12:
predykat  
predykat  
<math>deadlock(\mathcal{B})</math> zachodzi tu dla
<math>deadlock(\mathcal{B})</math> zachodzi tu dla
<math>\mathcal{B} = \{ P_2, P_3, P_3 \} </math>
<math>\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  
Przyjmijmy teraz dla urozmaicenia, że w przetwarzaniu z następnego grafu kanały wejściowe procesów  

Aktualna wersja na dzień 10:50, 5 wrz 2023

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 >>