Pr-1st-1.1-m05-Slajd06

Z Studia Informatyczne
Wersja z dnia 15:53, 7 wrz 2006 autorstwa Szopen (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Warunek uaktywnienia

Warunek uaktywnienia

Ponadto, w dowolnej chwili aktywny proces Pi może zmienić swój stan na pasywny, definiując jednocześnie zbiór warunkujący 𝒟i (będący sumą zbiorów oczekiwanych nadawców wszystkich dopuszczalnych zdarzeń odbioru) oraz warunek uaktywnienia wyrażony przez predykat: readyi(𝒳)(𝒫iA𝒳)activatei(𝒳).

Po spełnieniu warunku uaktywnienia, proces Pi zmienia swój stan na aktywny i w sposób atomowy (niepodzielny) pobiera z kanałów wejściowych wszystkie te wiadomości, których nadejście doprowadziło do spełnienia warunku uaktywnienia. Wprowadzimy jeszcze następujące oznaczenia:

passivei - zmienna logiczna (predykat) przyjmująca wartość True wtedy i tylko wtedy, gdy proces Pi jest pasywny;

availablei - tablica [1…n] zmiennych logicznych procesu Pi skojarzona z wiadomościami dostępnymi;

availablei[j] - j-ty element tablicy availablei przyjmujący wartość True wtedy i tylko wtedy, gdy dla Pi jest dostępna wiadomość wysłana przez Pj;

in-transiti - tablica zmiennych logicznych procesu Pi skojarzona z wiadomościami transmitowanymi;

in-transiti[j] - j-ty element tablicy in-transiti przyjmujący wartość True wtedy i tylko wtedy, gdy wiadomość wysłana przez Pj do Pi należy do Lj,iT, a więc jest transmitowana i nie jest jeszcze dostępna.

Niech ponadto:

𝒜𝒱i={Pj:availablei[j]=True},𝒯i={Pj:in-transiti[j]=True}.

Korzystając z powyższych oznaczeń, przedstawimy teraz formalne definicje zakleszczeń odpowiadające różnym modelom żądań: modelowi jednostkowemu, AND, OR, k spośród n, OR-AND, oraz modelowi predykatowemu. Dla uproszczenia, będziemy mówili o zakleszczeniu w określonym modelu, lub o modelu zakleszczenia.


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