io wyk6

background image

Problem filozofów

Problem filozofów

Kiedy myślący filozof poczuje głód,usiłuje podnieść najpierw lewą,
a potem prawą pałeczkę. Po zakończonym jedzeniu odkłada pałeczki
z powrotem na stół.

background image

Blokada (pat, zakleszczenie)

Blokada (pat, zakleszczenie)

Przypadek: jednocześnie każdy z filozofów podniósł jedną

Przypadek: jednocześnie każdy z filozofów podniósł jedną

pałeczkę i czeka na drugą.

pałeczkę i czeka na drugą.

Skutek: umrą z głodu

Skutek: umrą z głodu

Przykład komputerowy:

Przykład komputerowy:

Jeden proces pisze na drukarce, a drugi na taśmie.

Jeden proces pisze na drukarce, a drugi na taśmie.

W czasie tych operacji pierwszy proces żąda taśmy, a drugi

W czasie tych operacji pierwszy proces żąda taśmy, a drugi

-

-

drukarki. Obydwa zaczynają czekanie aż zasób się zwolni.

drukarki. Obydwa zaczynają czekanie aż zasób się zwolni.

W chwili obecnej rzeczywiste systemy operacyjne nie

W chwili obecnej rzeczywiste systemy operacyjne nie

rozwiązują jeszcze problemu zakleszczeń, gdyż są one

rozwiązują jeszcze problemu zakleszczeń, gdyż są one

stosunkowo rzadkie (i mogą być likwidowane przez

stosunkowo rzadkie (i mogą być likwidowane przez

operatora), ale w niedalekiej przyszłości ten problem stanie

operatora), ale w niedalekiej przyszłości ten problem stanie

przed WAMI.

przed WAMI.

background image

Blokada -warunki wystąpienia

Blokada -warunki wystąpienia

Do zakleszczenia może dojść, jeśli spełnione są równocześnie

Do zakleszczenia może dojść, jeśli spełnione są równocześnie

warunki:

warunki:





wzajemne wykluczanie

wzajemne wykluczanie

-

-

co najmniej jeden zasób musi być

co najmniej jeden zasób musi być

niepodzielny (w danym czasie może go używać tylko jeden

niepodzielny (w danym czasie może go używać tylko jeden

proces)

proces)





Przetrzymywanie i oczekiwanie

Przetrzymywanie i oczekiwanie

-

-

przynajmniej jeden

przynajmniej jeden

proces przetrzymuje jakiś zasób, ponieważ czeka na

proces przetrzymuje jakiś zasób, ponieważ czeka na

przydział dodatkowego innego zasobu, przetrzymywanego

przydział dodatkowego innego zasobu, przetrzymywanego

właśnie przez inny proces,

właśnie przez inny proces,





Brak wywłaszczeń

Brak wywłaszczeń

-

-

zasób może być zwolniony jedynie z

zasób może być zwolniony jedynie z

inicjatywy przetrzymującego, np. po zakończeniu procesu,

inicjatywy przetrzymującego, np. po zakończeniu procesu,





Czekanie cykliczne: P

Czekanie cykliczne: P

1

czeka na zasób przetrzymywany

czeka na zasób przetrzymywany

przez P

przez P

2

, P

, P

2

czeka na oddanie przez P

czeka na oddanie przez P

3

...

...

P

P

n

czeka na

czeka na

zwolnienie zasobu przez P

zwolnienie zasobu przez P

1

background image

Graf przydziału zasobów

Graf przydziału zasobów

P

1

Z

n

Z

3

Z

2

P

n

P

3

- proces n

- zasób n, 3 egzemplarze

- proces P

3

żą

da zasobu Z

3

(krawędź zamówienia)

- proces P

1

trzyma egzemplarz zasobu Z

2

(krawędź przydziału)

background image

Graf przydziału zasobów

Graf przydziału zasobów

P

1

Z

1

Z

3

Z

2

Z

4

P

2

P

3

background image

Graf przydziału zasobów z

zakleszczeniem

Graf przydziału zasobów z

zakleszczeniem

P

1

Z

1

Z

3

Z

2

Z

4

P

2

P

3

background image

Warunki wystąpienia zakleszczenia

Warunki wystąpienia zakleszczenia

Z

1





Jeśli graf przydziału zasobów nie ma cykli, to nie ma

Jeśli graf przydziału zasobów nie ma cykli, to nie ma

zakleszczenia,

zakleszczenia,





Jeśli zasób każdego typu ma tylko jeden egzemplarz, to

Jeśli zasób każdego typu ma tylko jeden egzemplarz, to

istnienie cyklu jest warunkiem koniecznym i dostatecznym

istnienie cyklu jest warunkiem koniecznym i dostatecznym

do wystąpienia blokady,

do wystąpienia blokady,





Jeśli istnieje po kilka egzemplarzy zasobu, to istnienie

Jeśli istnieje po kilka egzemplarzy zasobu, to istnienie

cyklu jest jedynie warunkiem koniecznym wystąpienia

cyklu jest jedynie warunkiem koniecznym wystąpienia

blokady

blokady

background image

Metody postępowania z zakleszczeniami

Metody postępowania z zakleszczeniami

Z

1





Stosowanie protokołu gwarantującego, że system nigdy nie

Stosowanie protokołu gwarantującego, że system nigdy nie

wejdzie w stan zakleszczenia,

wejdzie w stan zakleszczenia,





Pozwolenie na występowanie zakleszczeń i podjęcie

Pozwolenie na występowanie zakleszczeń i podjęcie

stosownych działań po takim fakcie,

stosownych działań po takim fakcie,





Zlekceważenie problemu (np. UNIX)

Zlekceważenie problemu (np. UNIX)

-

-

założenie, że

założenie, że

zakleszczenia nie pojawiają się.

zakleszczenia nie pojawiają się.

Praktycznie w takich systemach zakleszczenia pojawiają się

Praktycznie w takich systemach zakleszczenia pojawiają się

rzadko (np. raz do roku), więc raczej się nie inwestuje w

rzadko (np. raz do roku), więc raczej się nie inwestuje w

kosztowne mechanizmy do unikania zakleszczeń lub ich

kosztowne mechanizmy do unikania zakleszczeń lub ich

likwidacji, a wykonuje się to ręcznie.

likwidacji, a wykonuje się to ręcznie.

background image

Zapobieganie zakleszczeniom

Zapobieganie zakleszczeniom

Z

1

Trzeba zapewnić, aby nie wystąpił co najmniej jeden z

Trzeba zapewnić, aby nie wystąpił co najmniej jeden z

warunków koniecznych:

warunków koniecznych:





Wzajemne wykluczanie

Wzajemne wykluczanie

-

-

nie można uniknąć tego

nie można uniknąć tego

warunku, gdyż pewne zasoby są z natury niepodzielne, np.

warunku, gdyż pewne zasoby są z natury niepodzielne, np.

drukarki,

drukarki,





Przetrzymywanie i oczekiwanie

Przetrzymywanie i oczekiwanie

-

-

trzeba zagwarantować, że

trzeba zagwarantować, że

gdy proces zamawia jakiś zasób, to nie

gdy proces zamawia jakiś zasób, to nie

przetrzymywuje

przetrzymywuje

innych zasobów

innych zasobów

-

-

proces otrzymuje wszystkie zasoby przed rozpoczęciem

proces otrzymuje wszystkie zasoby przed rozpoczęciem

działania,

działania,

-

-

proces może zamówić zasób, jeśli wcześniej oddał

proces może zamówić zasób, jeśli wcześniej oddał

wszystkie pozostałe

wszystkie pozostałe

Wada

Wada

-

-

słabe wykorzystanie zasobów, możliwość głodzenia

słabe wykorzystanie zasobów, możliwość głodzenia

background image

Zapobieganie zakleszczeniom, cd.

Zapobieganie zakleszczeniom, cd.

Z

1





Brak wywłaszczeń

Brak wywłaszczeń

-

-

trzeba dopuścić, aby nie tylko proces

trzeba dopuścić, aby nie tylko proces

mógł zwolnić zasoby

mógł zwolnić zasoby

-

-

jeśli proces nie może dostać żądanego zasobu, to traci

jeśli proces nie może dostać żądanego zasobu, to traci

pozostałe i czeka na nie,

pozostałe i czeka na nie,

-

-

jeśli proces zamawia jakieś zasoby, to się sprawdza czy są

jeśli proces zamawia jakieś zasoby, to się sprawdza czy są

dostępne

dostępne

jeśli tak, to się je przydziela,

jeśli tak, to się je przydziela,

jeśli zasób jest trzymany przez inny proces, który czeka

jeśli zasób jest trzymany przez inny proces, który czeka

na jakieś zasoby, to mu się zasoby odbiera i daje

na jakieś zasoby, to mu się zasoby odbiera i daje

zamawiającemu,

zamawiającemu,

w przeciwnym wypadku proces czeka i może utracić swoje

w przeciwnym wypadku proces czeka i może utracić swoje

zasoby.

zasoby.

background image

Zapobieganie zakleszczeniom, cd.

Zapobieganie zakleszczeniom, cd.

Z

1





Czekanie cykliczne

Czekanie cykliczne

-

-

aby nie wystąpiło, trzeba zasobom

aby nie wystąpiło, trzeba zasobom

tego samego typu nadać liczbowe identyfikatory (np.

tego samego typu nadać liczbowe identyfikatory (np.

taśmy

taśmy

-

-

2, drukarki

2, drukarki

-

-

5) i trzeba dbać, aby proces zamawiał

5) i trzeba dbać, aby proces zamawiał

zasoby w rosnącym porządku numeracji, ewentualnie aby

zasoby w rosnącym porządku numeracji, ewentualnie aby

zwalniał zasoby o numeracji wyższej od zamawianego.

zwalniał zasoby o numeracji wyższej od zamawianego.

background image

Unikanie zakleszczeń

Unikanie zakleszczeń

Z

1





Każdy proces deklaruje maksymalną liczbę zasobów

Każdy proces deklaruje maksymalną liczbę zasobów

danego typu

danego typu





Stan przydziału zasobów jest określony przez liczbę

Stan przydziału zasobów jest określony przez liczbę

dostępnych i przydzielonych zasobów oraz przez

dostępnych i przydzielonych zasobów oraz przez

maksymalne zapotrzebowanie na zasoby

maksymalne zapotrzebowanie na zasoby





Algorytm unikania zakleszczeń sprawdza stan przydziału

Algorytm unikania zakleszczeń sprawdza stan przydziału

zasobów i blokuje niektóre przydziały, aby nie doszło do

zasobów i blokuje niektóre przydziały, aby nie doszło do

czekania cyklicznego

czekania cyklicznego

Jeśli porządek przydzielania zasobów procesom jest taki, że

Jeśli porządek przydzielania zasobów procesom jest taki, że

nie ma możliwości wystąpienia zakleszczeń, to system jest

nie ma możliwości wystąpienia zakleszczeń, to system jest

w

w

stanie bezpiecznym

stanie bezpiecznym

background image

Stan bezpieczny

Stan bezpieczny

Z

1

Jeżeli dla każdego procesu

Jeżeli dla każdego procesu

P

P

i

i

(spośród P

(spośród P

1

1

..

..

P

P

n

n

) jego

) jego

zapotrzebowanie na zasoby może być zaspokojone przez

zapotrzebowanie na zasoby może być zaspokojone przez

aktualnie dostępne zasoby, oraz przez zasoby używane

aktualnie dostępne zasoby, oraz przez zasoby używane

przez wszystkie procesy

przez wszystkie procesy

P

P

j

j

, gdzie j<i, to taki ciąg procesów

, gdzie j<i, to taki ciąg procesów

jest

jest

bezpieczny.

bezpieczny.





Jeżeli

Jeżeli

P

P

i

i

nie ma danej chwili dostępnych wszystkich

nie ma danej chwili dostępnych wszystkich

zasobów, to poczeka aż procesy

zasobów, to poczeka aż procesy

P

P

j

j

skończą działanie i

skończą działanie i

oddadzą swoje zasoby

oddadzą swoje zasoby

P

P

i

i





Po otrzymaniu wszystkich zasobów proces

Po otrzymaniu wszystkich zasobów proces

P

P

i

i

może

może

dokończyć pracę i zwolnić zasoby

dokończyć pracę i zwolnić zasoby





Wtedy proces

Wtedy proces

P

P

i

i

+1

+1

może otrzymać zasoby (jeśli na nie

może otrzymać zasoby (jeśli na nie

czekał) itd.

czekał) itd.

background image

Graf przydziału zasobów - analiza

stanu bezpiecznego

Graf przydziału zasobów - analiza

stanu bezpiecznego

P

1

Z

1

Z

2

P

2

P

1

P

2

Z

1

Z

2

Stan zagrożenia

background image

Algorytm bankiera

dla wielo-egzemplarzowych zasobów

Algorytm bankiera

dla wielo-egzemplarzowych zasobów

Z

1





Każdy proces wchodzący do systemu musi zadeklarować

Każdy proces wchodzący do systemu musi zadeklarować

maksymalną liczbę używanych egzemplarzy każdego

maksymalną liczbę używanych egzemplarzy każdego

zasobu, a liczba ta musi być nie większa od całkowitych

zasobu, a liczba ta musi być nie większa od całkowitych

zasobów w systemie

zasobów w systemie





System decyduje, czy przydział tych zasobów pozostawi

System decyduje, czy przydział tych zasobów pozostawi

stan bezpieczny

stan bezpieczny





Jeśli tak, to przydziela. Jeśli nie

Jeśli tak, to przydziela. Jeśli nie

-

-

to proces musi poczekać

to proces musi poczekać

na zwolnienie zasobów przez inne procesy

na zwolnienie zasobów przez inne procesy





Jeśli proces uzyska potrzebne zasoby, to musi je zwrócić w

Jeśli proces uzyska potrzebne zasoby, to musi je zwrócić w

skończonym czasie.

skończonym czasie.

background image

Wykrywanie zakleszczeń

Wykrywanie zakleszczeń

Z

1

Jeśli nie unikamy zakleszczeń to w systemie muszą istnieć:

Jeśli nie unikamy zakleszczeń to w systemie muszą istnieć:

a) Algorytmy wykrywania zakleszczenia

a) Algorytmy wykrywania zakleszczenia

b) Algorytmy likwidowania zakleszczenia

b) Algorytmy likwidowania zakleszczenia

ad. a): Tworzy się graf oczekiwania i okresowo wykonuje

ad. a): Tworzy się graf oczekiwania i okresowo wykonuje

algorytm poszukiwania cykli w tym grafie

algorytm poszukiwania cykli w tym grafie

ad. b):

ad. b):

-

-

Usunięcie wszystkich zakleszczonych procesów lub

Usunięcie wszystkich zakleszczonych procesów lub

-

-

Usuwanie procesów pojedynczo aż do

Usuwanie procesów pojedynczo aż do

wyeliminowania cyklu zakleszczenia

wyeliminowania cyklu zakleszczenia

Kryteria wyboru ofiary:

Kryteria wyboru ofiary:

1. Priorytet 2. Czas wykonywania i pozostały do zakończenia,

1. Priorytet 2. Czas wykonywania i pozostały do zakończenia,

3. Liczba i typ zasobów trzymanych przez proces, 4. Liczba

3. Liczba i typ zasobów trzymanych przez proces, 4. Liczba

procesów które trzeba będzie przerwać, 5. Proces

procesów które trzeba będzie przerwać, 5. Proces

interakcyjny czy wsadowy

interakcyjny czy wsadowy

background image

Wywłaszczanie

Wywłaszczanie

Z

1





Wybierając

Wybierając ofiarę

do wywłaszczenia trzeba mieć na

do wywłaszczenia trzeba mieć na

uwadze minimalizację kosztów

uwadze minimalizację kosztów

-

-

ile zasobów odzyskamy, a

ile zasobów odzyskamy, a

ile pracy procesu stracimy

ile pracy procesu stracimy



Wycofanie

(o ile to możliwe) procesu do bezpiecznego

(o ile to możliwe) procesu do bezpiecznego

punktu, od którego może wznowić działanie

punktu, od którego może wznowić działanie



Głodzenie

to w tym wypadku wywłaszczanie ciągle tego

to w tym wypadku wywłaszczanie ciągle tego

samego procesu. Algorytm powinien więc zapewniać, że

samego procesu. Algorytm powinien więc zapewniać, że

proces będzie ofiarą tylko skończoną ilość razy.

proces będzie ofiarą tylko skończoną ilość razy.

background image

Mieszane metody unikania impasu

Mieszane metody unikania impasu

Z

1





zapobieganie

zapobieganie





unikanie

unikanie





wykrywanie

wykrywanie

Jeżeli podzielimy zasoby na różne klasy, np.

Jeżeli podzielimy zasoby na różne klasy, np.

a) zasoby wewnętrzne, zużywane przez system,

a) zasoby wewnętrzne, zużywane przez system,

np

np

bloki

bloki

kontrolne procesów,

kontrolne procesów,

b) pamięć główna,

b) pamięć główna,

c) zasoby zadania, np. przydzielone urządzenia, pliki

c) zasoby zadania, np. przydzielone urządzenia, pliki

d) wymienny obszar pamięci

d) wymienny obszar pamięci

-

-

obszar w pamięci pomocniczej,

obszar w pamięci pomocniczej,

przeznaczony na poszczególne zadania użytkowników

przeznaczony na poszczególne zadania użytkowników

to do każdej z klas można stosować inne metody rozwiązania

to do każdej z klas można stosować inne metody rozwiązania

problemu zakleszczeń.

problemu zakleszczeń.

background image

Mieszane metody unikania impasu

Mieszane metody unikania impasu

Z

1

Ad a): poprzez porządkowanie zasobów

Ad a): poprzez porządkowanie zasobów

-

-

nie trzeba

nie trzeba

dokonywać wyborów między realizowanymi zadaniami

dokonywać wyborów między realizowanymi zadaniami

Ad b): ponieważ można wysłać obraz zadania do pamięci

Ad b): ponieważ można wysłać obraz zadania do pamięci

pomocniczej, pozwala to na wywłaszczenie procesów z

pomocniczej, pozwala to na wywłaszczenie procesów z

pamięci głównej

pamięci głównej

Ad c): poprzez taktykę unikania zakleszczeń, bazując na

Ad c): poprzez taktykę unikania zakleszczeń, bazując na

informacjach z kart sterujących zadania

informacjach z kart sterujących zadania

Ad d): można zastosować wstępny przydział pamięci, gdyż

Ad d): można zastosować wstępny przydział pamięci, gdyż

maksymalne zapotrzebowanie każdego procesu na pamięć

maksymalne zapotrzebowanie każdego procesu na pamięć

jest znane.

jest znane.


Wyszukiwarka

Podobne podstrony:
IO wyk6 projektowanie architektura v2
IO wyk6 projektowanie architektura v2
WYK6 BazyDanych
IO ALL
io wyk5
gprs t6 io pl 1013
io 8 z
ub-wyk6, FIR UE Katowice, SEMESTR IV, Ubezpieczenia, ubezpieczenia
BD IO 3
IO zerówka opracowanie
aqua s io pl 1109
cz emm2 io pl 0407
acx201 io pl 1112
amd101 io pl 0510(2)
io w11 zasady projektowania opr
dok5, Prywatne, WAT, SEMESTR IV, IO, Zaliczenie IO
graphite io pl 1109

więcej podobnych podstron