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
 
Szopen (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
==Przykład – model OR==
==Przykład – model OR==


[[Image:pr-1st-1.1-m05-Slajd18.png|Przykład – model OR]]
[[Image:Pr-1st-1.1-m05-Slajd18.png|Przykład – model OR]]


Kolejny z grafów przedstawia zakleszczenie w modelu OR. Zbiory warunkujące to:  
Kolejny z grafów przedstawia zakleszczenie w modelu OR. Zbiory warunkujące to:  
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  
<math>P_1</math>,  <math>P_3</math>, <math>P_4</math> i <math>P_5</math>  
<math>P_1</math>,  <math>P_3</math>, <math>P_4</math> i <math>P_5</math>  
są puste. W kanale <math>C_{3,2}</math> jest natomiast dostępna wiadomość, ale proces  
są puste. W kanale <math>C_{3,2}</math> jest natomiast dostępna wiadomość, ale proces  
<math>P_2</math> nie oczekuje wiadomości od procesu <math>P_3</math>. Przyjmijmy ponadto, że wiadomość <math>M<math>  wysłana z  
<math>P_2</math> nie oczekuje wiadomości od procesu <math>P_3</math>. Przyjmijmy ponadto, że wiadomość <math>M</math>  wysłana z  
<math>P_1</math> do <math>P_2</math>  jest właśnie transmitowana (<math>in\mbox{-}transit_2[1]=True</math>) lecz nie jest jeszcze dostępna. Ponieważ jednak  
<math>P_1</math> do <math>P_2</math>  jest właśnie transmitowana (<math>in\mbox{-}transit_2[1]=True</math>) lecz nie jest jeszcze dostępna. Ponieważ jednak  
<math>P_1  \not\in \mathcal{D}_2</math>, nadejście wiadomości <math>M</math>, nie uaktywni procesu  
<math>P_1  \not\in \mathcal{D}_2</math>, nadejście wiadomości <math>M</math>, nie uaktywni procesu  
<math>P_2</math>. W rozważanym stanie, jedynie proces <math>P_1</math> może być ewentualnie uaktywniony przez <math>P_5</math>.  
<math>P_2</math>. W rozważanym stanie, jedynie proces <math>P_1</math> może być ewentualnie uaktywniony przez <math>P_5</math>.  
W konsekwencji, jeżeli modelem żądań jest model OR, to <math>deadlock(\mathcal{B}) = True</math> dla
W konsekwencji, jeżeli modelem żądań jest model OR, to <math>deadlock(\mathcal{B}) = True</math> dla
<math>\mathcal{B} = \{ P_2, P_3, P_3 \}<\math>.
<math>\mathcal{B} = \{ P_2, P_3, P_3 \}</math>.


Zauważmy też jeszcze, że gdyby proces <math>P_1</math> żądał jednocześnie wiadomości zarówno od <math>P_5</math> jak i <math>P_4</math> (jak to ma miejsce w modelu AND), to zbiór procesów zakleszczonych obejmowałby: <math>P_1</math>,  <math>P_2</math>, <math>P_3</math> i <math>P_4</math>.
Zauważmy też jeszcze, że gdyby proces <math>P_1</math> żądał jednocześnie wiadomości zarówno od <math>P_5</math> jak i <math>P_4</math> (jak to ma miejsce w modelu AND), to zbiór procesów zakleszczonych obejmowałby: <math>P_1</math>,  <math>P_2</math>, <math>P_3</math> i <math>P_4</math>.
Linia 28: Linia 28:




[[pr-1st-1.1-m05-Slajd17 | << Poprzedni slajd]] | [[pr-1st-1.1-m05-toc|Spis treści ]] | [[pr-1st-1.1-m05-Slajd19 | Następny slajd >>]]
[[Pr-1st-1.1-m05-Slajd17 | << Poprzedni slajd]] | [[Pr-1st-1.1-m05-toc|Spis treści ]] | [[Pr-1st-1.1-m05-Slajd19 | Następny slajd >>]]

Wersja z 15:54, 7 wrz 2006

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