Pr-1st-1.1-m05-Slajd19: Różnice pomiędzy wersjami
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
Ostatni z grafów ilustruje zakleszczenie w modelu k spośród r. Zauważmy, że
, , , .
Modele żądań dla , , i 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 może być uaktywniony, ale procesy , i są zakleszczone. Warto zauważyć, że predykat jest predykatem stabilnym. Tym samym zajście tego predykatu w pewnej chwili , implikuje, że dla każdego , .
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 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.