SOP wyk nr 16-Slajd11: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 10: | Linia 10: | ||
Jeśli taki proces się znajdzie, zostaje on uznany za zakończony, a zwalniane przez niego jednostki zasobów dołączane są do wektora ''W'' . Następuje powrót do bloku decyzyjnego i poszukiwanie kolejnego procesu. | Jeśli taki proces się znajdzie, zostaje on uznany za zakończony, a zwalniane przez niego jednostki zasobów dołączane są do wektora ''W'' . Następuje powrót do bloku decyzyjnego i poszukiwanie kolejnego procesu. | ||
Jeśli warunek (koniunkcja) w bloku decyzyjnym jest nie spełniony, to albo nie ma kolejnego procesu „do zakończenia”, albo dla żadnego z procesów nie zakończonych nie ma wystarczającej liczby jednostek któregoś z zasobów. Sprawdzane jest w kolejnym bloku decyzyjnym. Jeśli w wektorze ''K'' są wartości false, to odpowiednie procesy są nie zakończone, zatem zakleszczone: | Jeśli warunek (koniunkcja) w bloku decyzyjnym jest nie spełniony, to albo nie ma kolejnego procesu „do zakończenia”, albo dla żadnego z procesów nie zakończonych nie ma wystarczającej liczby jednostek któregoś z zasobów. Sprawdzane jest w kolejnym bloku decyzyjnym. Jeśli w wektorze ''K'' są wartości false, to odpowiednie procesy są nie zakończone, zatem zakleszczone: ∀''P<sub>i</sub>'': (''K'' [''i'' ] = false ⇒ ''P<sub>i</sub>'' jest zakleszczony). | ||
Jeśli wszystkie procesy udało się doprowadzić do zakończenie (∀''P<sub>i</sub>'' : ''K'' [''i'' ] = true) nie ma zakleszczenia. | |||
[[SOP_wyk_nr_16-Slajd10 | << Poprzedni slajd]] | [[SOP_wyk_nr_16-toc|Spis treści ]] | [[SOP_wyk_nr_16-Slajd12 | Następny slajd >>]] | [[SOP_wyk_nr_16-Slajd10 | << Poprzedni slajd]] | [[SOP_wyk_nr_16-toc|Spis treści ]] | [[SOP_wyk_nr_16-Slajd12 | Następny slajd >>]] |
Wersja z 12:05, 16 sie 2006
Macierzowa reprezentacja stanu — wykrywanie zakleszczenia (2)
Wektor W przechowuje informację o liczbie jednostek poszczególnych rodzajów zasobów dostępną dla procesów. Początkowo zatem jego wartość inicjalizowana jest zawartością wektora F . W analizie istotne są tylko te procesy, które mogą zwolnić jakieś jednostki. Wartość na pozycji, odpowiadającej tym procesom, w tablicy K jest false. Z kolei procesy, które w tablicy K mają wartość true, uznane są za zakończone lub nieistotne.
W blok decyzyjnym poszukiwany jest proces, który może zwolnić jakieś jednostki (nie jest uznany za zakończony), a którego zamówienie może zostać zaspokojone dostępnymi w systemie jednostkami (przechowywanymi w wektorze W ).
Jeśli taki proces się znajdzie, zostaje on uznany za zakończony, a zwalniane przez niego jednostki zasobów dołączane są do wektora W . Następuje powrót do bloku decyzyjnego i poszukiwanie kolejnego procesu.
Jeśli warunek (koniunkcja) w bloku decyzyjnym jest nie spełniony, to albo nie ma kolejnego procesu „do zakończenia”, albo dla żadnego z procesów nie zakończonych nie ma wystarczającej liczby jednostek któregoś z zasobów. Sprawdzane jest w kolejnym bloku decyzyjnym. Jeśli w wektorze K są wartości false, to odpowiednie procesy są nie zakończone, zatem zakleszczone: ∀Pi: (K [i ] = false ⇒ Pi jest zakleszczony).
Jeśli wszystkie procesy udało się doprowadzić do zakończenie (∀Pi : K [i ] = true) nie ma zakleszczenia.