Pr-1st-1.1-m05-Slajd06
Warunek uaktywnienia
Ponadto, w dowolnej chwili aktywny proces może zmienić swój stan na pasywny, definiując jednocześnie zbiór warunkujący (będący sumą zbiorów oczekiwanych nadawców wszystkich dopuszczalnych zdarzeń odbioru) oraz warunek uaktywnienia wyrażony przez predykat: .
Po spełnieniu warunku uaktywnienia, proces 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:
- zmienna logiczna (predykat) przyjmująca wartość True wtedy i tylko wtedy, gdy proces jest pasywny;
- tablica [1…n] zmiennych logicznych procesu skojarzona z wiadomościami dostępnymi;
- j-ty element tablicy przyjmujący wartość True wtedy i tylko wtedy, gdy dla jest dostępna wiadomość wysłana przez ;
- tablica zmiennych logicznych procesu skojarzona z wiadomościami transmitowanymi;
- j-ty element tablicy przyjmujący wartość True wtedy i tylko wtedy, gdy wiadomość wysłana przez do należy do , a więc jest transmitowana i nie jest jeszcze dostępna.
Niech ponadto:
- .
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.