Pr-1st-1.1-m05-Slajd19: 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>”
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 14: Linia 14:
Warto zauważyć,  że  predykat  <math>deadlock(\mathcal{B})</math>
Warto zauważyć,  że  predykat  <math>deadlock(\mathcal{B})</math>
jest predykatem  stabilnym. Tym samym zajście tego predykatu w pewnej chwili <math>\tau</math>, implikuje, że dla każdego
jest predykatem  stabilnym. Tym samym zajście tego predykatu w pewnej chwili <math>\tau</math>, implikuje, że dla każdego
<math> \tau ' \ge \tau</math>,  
<math>\tau ' \ge \tau</math>,  
<math>deadlock(\mathcal{B})= True </math>.
<math>deadlock(\mathcal{B})= True</math>.


Powyższe stwierdzenie jest oczywiście poprawne jeżeli rozważone są wyłącznie procesy tworzące określone przetwarzanie aplikacyjne. W szerszej jednak perspektywie, obejmującej dodatkowo procesy zewnętrzne w stosunku do aplikacji, jak na przykład monitory, możliwe staje się podjęcie działań zmierzających do przywrócenia stanu wolnego od zakleszczenia poprzez zewnętrzne wymuszenie zmiany stanu procesu aplikacyjnego (usunięcia procesu <math>P_i</math> i odzyskanie zasobów będących w jego dyspozycji). Takie podejście wymaga w pierwszej kolejności wykrycia (detekcji) zakleszczenia, co w środowisku rozproszonym nie jest jednak łatwe.
Powyższe stwierdzenie jest oczywiście poprawne jeżeli rozważone są wyłącznie procesy tworzące określone przetwarzanie aplikacyjne. W szerszej jednak perspektywie, obejmującej dodatkowo procesy zewnętrzne w stosunku do aplikacji, jak na przykład monitory, możliwe staje się podjęcie działań zmierzających do przywrócenia stanu wolnego od zakleszczenia poprzez zewnętrzne wymuszenie zmiany stanu procesu aplikacyjnego (usunięcia procesu <math>P_i</math> i odzyskanie zasobów będących w jego dyspozycji). Takie podejście wymaga w pierwszej kolejności wykrycia (detekcji) zakleszczenia, co w środowisku rozproszonym nie jest jednak łatwe.


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

Aktualna wersja na dzień 22:11, 11 wrz 2023

Przykład – model k spośród r

Przykład – model k spośród r

Ostatni z grafów ilustruje zakleszczenie w modelu k spośród r. Zauważmy, że

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

Modele żądań dla P1, P2, P3 i P4 są zdefiniowane następująco: 1 spośród 3, 1 spośród 1, 2 spośród 2, oraz 2 spośród 3. W rozważanym stanie, proces P1 może być uaktywniony, ale procesy P2, P3 i P4 są zakleszczone. Warto zauważyć, że predykat deadlock() jest predykatem stabilnym. Tym samym zajście tego predykatu w pewnej chwili τ, implikuje, że dla każdego ττ, deadlock()=True.

Powyższe stwierdzenie jest oczywiście poprawne jeżeli rozważone są wyłącznie procesy tworzące określone przetwarzanie aplikacyjne. W szerszej jednak perspektywie, obejmującej dodatkowo procesy zewnętrzne w stosunku do aplikacji, jak na przykład monitory, możliwe staje się podjęcie działań zmierzających do przywrócenia stanu wolnego od zakleszczenia poprzez zewnętrzne wymuszenie zmiany stanu procesu aplikacyjnego (usunięcia procesu Pi i odzyskanie zasobów będących w jego dyspozycji). Takie podejście wymaga w pierwszej kolejności wykrycia (detekcji) zakleszczenia, co w środowisku rozproszonym nie jest jednak łatwe.

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