SOP wyk nr 15-Slajd31: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 6: | Linia 6: | ||
Analiza graf przydziału zasobów nieodzyskiwalnych jest trudniejsze, niż w przypadku zasobów odzyskiwalnych. Chociaż można wskazać pewne własności, które umożliwiałyby wykrycie np. stanu zakleszczenia, dotyczą one szczególnych przypadków. Trudno np. rozważać system z zasobami pojedynczymi. Jedyną sensowną metodą jest redukcja grafu przydziału, co zostanie przedstawione w następnym module. Ale i takie podejście nie zawsze gwarantuje precyzyjne określenia rzeczywistego stanu. | Analiza graf przydziału zasobów nieodzyskiwalnych jest trudniejsze, niż w przypadku zasobów odzyskiwalnych. Chociaż można wskazać pewne własności, które umożliwiałyby wykrycie np. stanu zakleszczenia, dotyczą one szczególnych przypadków. Trudno np. rozważać system z zasobami pojedynczymi. Jedyną sensowną metodą jest redukcja grafu przydziału, co zostanie przedstawione w następnym module. Ale i takie podejście nie zawsze gwarantuje precyzyjne określenia rzeczywistego stanu. | ||
W przedstawionym przykładzie procesy '' | W przedstawionym przykładzie procesy ''P<sub>3</sub>'' i ''P<sub>4</sub>'' są zablokowane ze względu na niedostępność jednostek odpowiednio zasobu ''Z<sub>3</sub>'' i ''Z<sub>4</sub>'' . Jednostki tych zasobów mogą zostać wyprodukowane odpowiednio przez procesy ''P<sub>1</sub>'' i ''P<sub>2</sub>'' pod warunkiem odblokowania tych procesów. Dalszy przebieg przetwarzania zależy od kolejności zdarzeń w systemie lub decyzji zarządcy zasobów. Przydzielając jednostkę zasobu ''Z<sub>1</sub>'' procesowi ''P<sub>1</sub>'' a jednostkę zasobu ''Z<sub>2</sub>'' procesowi ''P<sub>2</sub>'' (lub odwrotnie) system wchodzi w stan zakleszczenia, niezależnie od tego czy zasoby ''Z<sub>1</sub>'' i ''Z<sub>2</sub>'' są odzyskiwalne, czy nie. Przydzielenie jednostek obu zasobów jednemu z procesów doprowadzi do zakleszczenia drugiego. Na przykład, jeśli ''P<sub>1</sub>'' uzyska jednostki obu zasobów wyprodukuje ''Z<sub>3</sub>'' , co odblokuje ''P<sub>3</sub>'' , a dalej umożliwi wyprodukowanie jednostki zasobu ''Z<sub>1</sub>'' . Dla ''P<sub>2</sub>'' zabraknie jednak jednostki zasobu ''Z<sub>2</sub>'' . W przypadku zasobów odzyskiwalnych, odpowiednie jednostki zostałyby po prostu zwolnione po zakończeniu procesów — jednostka zasobu ''Z<sub>2</sub>'' wróciłaby wówczas do systemu. Zgodnie z definicją zakleszczenie, każdy z procesów da się odblokować (nie ma więc zakleszczenia), ale odblokowanie ''P<sub>1</sub>'' powoduje zakleszczenie ''P<sub>2</sub>'' i ''P<sub>4</sub>'' , a odblokowanie ''P<sub>2</sub>'' powoduje zakleszczenie ''P<sub>1</sub>'' i ''P<sub>3</sub>'' . | ||
[[SOP_wyk_nr_15-Slajd30 | << Poprzedni slajd]] | [[SOP_wyk_nr_15-toc|Spis treści ]] | [[SOP_wyk_nr_15-Slajd32 | Następny slajd >>]] | [[SOP_wyk_nr_15-Slajd30 | << Poprzedni slajd]] | [[SOP_wyk_nr_15-toc|Spis treści ]] | [[SOP_wyk_nr_15-Slajd32 | Następny slajd >>]] |
Wersja z 11:56, 16 sie 2006
Przykład analizy grafu przydziału zasobów nieodzyskiwalnych
Analiza graf przydziału zasobów nieodzyskiwalnych jest trudniejsze, niż w przypadku zasobów odzyskiwalnych. Chociaż można wskazać pewne własności, które umożliwiałyby wykrycie np. stanu zakleszczenia, dotyczą one szczególnych przypadków. Trudno np. rozważać system z zasobami pojedynczymi. Jedyną sensowną metodą jest redukcja grafu przydziału, co zostanie przedstawione w następnym module. Ale i takie podejście nie zawsze gwarantuje precyzyjne określenia rzeczywistego stanu.
W przedstawionym przykładzie procesy P3 i P4 są zablokowane ze względu na niedostępność jednostek odpowiednio zasobu Z3 i Z4 . Jednostki tych zasobów mogą zostać wyprodukowane odpowiednio przez procesy P1 i P2 pod warunkiem odblokowania tych procesów. Dalszy przebieg przetwarzania zależy od kolejności zdarzeń w systemie lub decyzji zarządcy zasobów. Przydzielając jednostkę zasobu Z1 procesowi P1 a jednostkę zasobu Z2 procesowi P2 (lub odwrotnie) system wchodzi w stan zakleszczenia, niezależnie od tego czy zasoby Z1 i Z2 są odzyskiwalne, czy nie. Przydzielenie jednostek obu zasobów jednemu z procesów doprowadzi do zakleszczenia drugiego. Na przykład, jeśli P1 uzyska jednostki obu zasobów wyprodukuje Z3 , co odblokuje P3 , a dalej umożliwi wyprodukowanie jednostki zasobu Z1 . Dla P2 zabraknie jednak jednostki zasobu Z2 . W przypadku zasobów odzyskiwalnych, odpowiednie jednostki zostałyby po prostu zwolnione po zakończeniu procesów — jednostka zasobu Z2 wróciłaby wówczas do systemu. Zgodnie z definicją zakleszczenie, każdy z procesów da się odblokować (nie ma więc zakleszczenia), ale odblokowanie P1 powoduje zakleszczenie P2 i P4 , a odblokowanie P2 powoduje zakleszczenie P1 i P3 .