Pr-1st-1.1-m05-Slajd19: Różnice pomiędzy wersjami
Nie podano opisu zmian |
m Zastępowanie tekstu – „<math> ” na „<math>” |
||
(Nie pokazano 2 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
==Przykład – model k spośród r== | ==Przykład – model k spośród r== | ||
[[Image: | [[Image:Pr-1st-1.1-m05-Slajd52.png]] | ||
[[Image: | [[Image:Pr-1st-1.1-m05-Slajd53.png]] | ||
[[Image: | [[Image:Pr-1st-1.1-m05-Slajd54.png|Przykład – model k spośród r]] | ||
Ostatni z grafów ilustruje zakleszczenie w modelu ''k spośród r''. Zauważmy, że | Ostatni z grafów ilustruje zakleszczenie w modelu ''k spośród r''. Zauważmy, że | ||
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 >>]] |
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.