Pr-1st-1.1-m05-Slajd14: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
==Zakleszczenie w modelu predykatowym== | ==Zakleszczenie w modelu predykatowym== | ||
[[Image: | [[Image:Pr-1st-1.1-m05-Slajd14.png|Zakleszczenie w modelu predykatowym]] | ||
W modelu ''predykatowym'' dla każdego pasywnego procesu <math>P_i</math> ze zbiorem warunkującym <math>\mathcal{D}_i</math> i dla każdego zbioru | W modelu ''predykatowym'' dla każdego pasywnego procesu <math>P_i</math> ze zbiorem warunkującym <math>\mathcal{D}_i</math> i dla każdego zbioru | ||
<math>\mathcal{X} \subseteq \mathcal{D}_i</math> | <math>\mathcal{X} \subseteq \mathcal{D}_i</math> | ||
zdefiniowany jest predykat <math>activate_i(\mathcal{X})</math>. Predykat ten zachodzi, wtedy i tylko wtedy, gdy w związku z dostępnością wiadomości od wszystkich procesów tworzących zbiór , gotowe stanie się którekolwiek z dopuszczalnych zdarzeń odbioru. Wówczas: | zdefiniowany jest predykat <math>activate_i(\mathcal{X})</math>. Predykat ten zachodzi, wtedy i tylko wtedy, gdy w związku z dostępnością wiadomości od wszystkich procesów tworzących zbiór, gotowe stanie się którekolwiek z dopuszczalnych zdarzeń odbioru. Wówczas: | ||
<math>deadlock(\mathcal{B}) \equiv </math> | <math>deadlock(\mathcal{B}) \equiv </math> | ||
Linia 36: | Linia 36: | ||
<math>activate_i(\mathcal{D}_i) = True</math>. | <math>activate_i(\mathcal{D}_i) = True</math>. | ||
[[ | [[Pr-1st-1.1-m05-Slajd13 | << Poprzedni slajd]] | [[Pr-1st-1.1-m05-toc|Spis treści ]] | [[Pr-1st-1.1-m05-Slajd15 | Następny slajd >>]] |
Wersja z 15:54, 7 wrz 2006
Zakleszczenie w modelu predykatowym
W modelu predykatowym dla każdego pasywnego procesu ze zbiorem warunkującym i dla każdego zbioru zdefiniowany jest predykat . Predykat ten zachodzi, wtedy i tylko wtedy, gdy w związku z dostępnością wiadomości od wszystkich procesów tworzących zbiór, gotowe stanie się którekolwiek z dopuszczalnych zdarzeń odbioru. Wówczas:
Definicja ta oznacza, że żaden proces nie może być uaktywniony nawet jeżeli uwzględnimy wszystkie wiadomości znajdujące się aktualnie w kanałach od oczekiwanych nadawców () oraz potencjalne wiadomości od wszystkich procesów nie zakleszczonych. Dotarcie wszystkich tych wiadomości nie jest bowiem wystarczające dla spełnienia warunku uaktywnienia któregokolwiek z procesów .
Definicja zakleszczenia dla modelu predykatowego jest w pełni ogólna i może być dostosowana do innych, wcześniej omawianych modeli. Dlatego też ta definicja pozwala na jednorodne podejście do problemu zakleszczenia, abstrahując od konsekwencji szczególnych właściwości różnych modeli żądań.
Przy założeniu, że żaden proces nie osiąga stanu zakończenia, zakleszczenie dotyczy zawsze co najmniej dwóch procesów. Istotnie, przypuśćmy, że , zachodzi i żaden inny proces nie jest zakleszczony. Ponieważ otrzymujemy: Z drugiej strony, i stąd: . Otrzymujemy zatem sprzeczność, gdyż z założenia , a z definicji predykatu , .