SO-1st-2.3-w14.tresc-1.0-Slajd12: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dwa (dyskusja | edycje)
Nie podano opisu zmian
 
Dwa (dyskusja | edycje)
Nie podano opisu zmian
Linia 3: Linia 3:
[[Image:SO-1st-2.3-w14.tresc-1.0-Slajd12.PNG|Macierzowa reprezentacja stanu — wykrywanie zakleszczenia (2)]]
[[Image:SO-1st-2.3-w14.tresc-1.0-Slajd12.PNG|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.


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 bloku 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'').


W bloku 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 taki proces się znajdzie, zostaje on uznany za zakończony, a zwalniane przez niego jednostki zasobów dołączane 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 to w kolejnym bloku decyzyjnym. Jeśli w wektorze ''K'' są wartości false, to odpowiednie procesy nie zakończone, zatem zakleszczone: &forall;''P<sub>i</sub>'': (''K'' [''i''] = false &rArr; ''P<sub>i</sub>'' jest zakleszczony).  


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 to 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 (&forall;''P<sub>i</sub>'' : ''K'' [''i''] = true) nie ma zakleszczenia.
 
Jeśli wszystkie procesy udało się doprowadzić do zakończenie (?''Pi'' : ''K[i'' ] = true) nie ma zakleszczenia.





Wersja z 08:53, 25 wrz 2006

Macierzowa reprezentacja stanu — wykrywanie zakleszczenia (2)

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 bloku 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 to 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.



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