You are on page 1of 5

Deadlock Avoidance – Izbjegavanje zastoja

Zasnovano je na pristupu koji zahtjeva dodatne informacije o načinu i redslijedu postavljanja zahtjeva
za dodjelom resursa.

Poznavanje redoslijeda postavljanja zahtjeva za dodjelu i oslobađanje resursa moguće je odrediti,


odnosno može se odlučiti za svaki poejedini zahtjev da li proces mora čekati ili ne.

Svaki zahtjev zathjeva od operativnog sistema da razmotri koji su mu resursi trenutno na raspolaganju,
koji su resursi trenutno zauzeti, buduće zahtjeve i oslobađanja resursa i tek onda da odluči da li će
zahtjev biti zadovoljen ili mora biti odbačen kako bi se izbjegao potpuni zastoj.

Najjednostavniji i najkorisniji model zahtjeva da svaki proces unaprijed odredi maksimalni broj
resursa određenog tipa koji su potrebni za njegovo izvođenje.

Na osnovu ovog podatka moguće je kontruirati algoritam koji osigurava da se sistem nikada ne nađe u
stanju potpunog zastoja.

Ovaj algoritam dinamički ispituje kako su resursi unutar sistema raspoređeni, tzv. Stanje dodjele
(allocation state) kako bi se osiguralo da ne nastupi kružno čekanje. Stanje dodjele opisano je
trenutnim brojem slobodnih i dodjeljenih resursa te mksimalnim zahtjevima svakog pojedinog
procesa.

Safe state – Sgiurnosno stanje

Sistem može dodijeliti određenim redoslijedom resurse svakom procesu do maksimalnog broja koje on
zahtjeva, a da se izbjegne stanje ptpunog zastoja.

Formalno kaže se da je sistem u sigurnom stanju ako postoji tzv. Siguran niz dodjele (safe sequence).

Ako ne postoji u sistemu takav niz kaže se da je stanje nesigurno, odnosno da je sistem u nesigurnom
stanju (unsafe state).

unsafe
deadlock

safe
Safe state – Primjer

Neka sistem ima 12 jedinica magnetne trake, a uzeto je na obradu tri procesa. Proces P 0 zahtjeva 10
jedinica trake, proces P1 zahtjeva 4 jedinice, a proces P2 zahjteva 9 jedinica. Neka je u trenutku t 0
rezervirano 5 jedinica trake od strane procesa P 0, 2 od strane procesa P1 i 2 od strane procesa P 2. Tako
u sistemu ostaju slobodne 3 jedinice trake.

U trenutku t0 sistem je u stabilnom stanju. Niz <P0,P1, P2> zadovoljava uslove sigurnog niza budući da
proces P1 može tokom izvođenja zatražiti i dobiti sve potrebne resurse (dodatne dvije jedinice trake) te
po okončanju obrade otpustiti sve rezervirane resurse. Tada je u sistemu slobodno pet jedinica trake.
Tada se može aktivirati proces P 1 koji ukoliko zatraži dodatnh 5 jedinica trake može se udovoljiti
njegovom zahtjevu pa i on može obaviti potrebnu obradu i po završetku otpustiti rezervirane resurse.
Konačno će se izvesti proces P2 za kojeg sistem sada ima dovoljno slobodnih resursa, a po njegovom
završetku nakon otpuštanja rezervisanih resursa, u sistemu je 12 slobodnih jedinica trake.

Proces Maksimalne potrebe Trenutno rezervisano


P0 10 5
P1 4 2
P2 9 2

Safe state – Primjer

Neka sistem ima 12 jedinica magnetne trake, a uzeto je na obradu tri procesa. Proces P 0 zahtjeva 10
jedinica trake, proces P1 zahtjeva 4 jedinice, a proces P2 zahjteva 9 jedinica. Neka je u trenutku t 0
rezervirano 5 jedinica trake od strane procesa P 0, 2 od strane procesa P1 i 2 od strane procesa P 2. Tako
u sistemu ostaju slobodne 3 jedinice trake.

Može se primjetiti da je iz sigurnog moguće prijeći u nesigurno stanje.

Neka u trenutku t1 proces P2 zatraži i dobije dodatnu jedinicu trake. U ovom trenutku sistem više nije
stabilan. Naime kada proces P1 zatraži i dobije dodatne dvije jedinice koliko mu treba za obavljanje
zadatka i po završetku otpusti sve resurse koje je bio rezervirao ostaju slobodne svega četiri jedinice
trake. Ovo je nedostalno da proces P0 koji dolazi na red za obradu završi zadani mu posao te se stavlja
u stanje čekanja.

Proces P2 koji se sljedeći aktivira traži za nastavak šest jedinica trake. Kako nema dovoljno slobodnih
resursa ni za njegov nastavak došlo je potpunog zastoja.

Proces Maksimalne potrebe Trenutno rezervisano


P0 10 5
P1 4 2
P2 9 2

Resource Allocation Graph Algorithm – Algoritam zasnovan na grafu dodjele resursa


Ukoliko je račnarski sistem takav da svaki resurs ima samo jednu razinu tada se graf dodjele resursa
može iskoristiti za izbjegavanje potpunog zastoja. Uz strelice dodjele i strelice zahtjeva dodaje se i
strelica mogućeg potraživanja (clean edge).

Strelica mogućeg potraživanja Pi -> Rj označava da proces Pi možda u budućnosti će zatražiti


korištenje resursa Rj. Ova strelica označava se isprekidanom linijom.

Kada proces Pi zatraži resurs Rj tada se strelica mogućeg potraživanja pretvara se u strelicu zahtjeva.
Obrnuto kada proces Pi Otpusti resurs Rj strelica dodjele pretvara se u strelicu mogućeg zathtjeva.

R1

P1 P2

R2

Resource Allocation Graph Algorithm – Algoritam zasnovan na grafu dodjele resursa

Prema ovom algoritmu proces može zatražiti resurs Rj samo onda ako pretvorba strelice
mogućeg zahtjeva u strelicu dodjele nema za posljedicu zatvorenu ptelju u grafu dodjele resursa.

Mora se naglastiti da ispitivanje postojanja zatvorene petlje zahtjeva n 2 operacija, gdje je n broj
procesa prihvaćenih na obradu.

Ukoliko postavljeni zahtjev za dodjelom ne rezultira u zatvorenoj petlji, sistem je u stabilnom


stanju i zahtjev može biti prihvaćen. U suprotnom dodjela bi dovela sistem u nestabilno stanje pa
proces mora čekati kako bi se udovoljilo njegovom zahtjevu za dodjelom.

P1 P2

R2
Opisani algoritam može se prikazati sljedećim jednostavnim primjerom.
U početnom stanju proces P1 zatražio je i dobio na korištenju resurs R1. Ako proces P2 zatraži za
korištenje resurs R2, koji je trenutno slobodan i po toj logici moglo bi biti dodijeljeno procesu P2,
neće mu biti odoboreno iz razloga što bi to rezultiralo u zatvorenoj petlji, odnosno nestabilnom stanju.

Banker's Algorithm – Bankarov algoritam

Algoritam zasnovan grafu stanja sistema nije primjenjiv na sisteme u kojima resursi imaju više razina.
Algoritam koji osigurava da i ovakav sistem izbjegne stanje potpunog zastoja naziva se bankarov
algoritam (banker's algorithm).

Ovaj naziv je odabran zato što se ovakav algoritam može koristiti u bankarskom sistemu kako bi se
osiguralo da banka nikada ne dodjeli tolko sredstava (resursa) da nakon toga ne može u budućnosti
zadovoljiti zahtjeve stranaka.

Kada novi proces se prihvati na obradu on mora odrediti maksimalne ptorebe resursa koje namjerava
koristiti. Ovaj broj naravno ne smije biti veći od broja raspoloživih resursa u sistemu. Kada proces
zatraži skup resursa, sistem mora odlučiti da li će se zahtjevu odovoljiti (ukoliko sistem ostaje u
stabilnom stanju) ili će se proces staviti u stanje čekanja.

P1 P2

R2

Kako bi se implementirao bankarov algoritam moraju se definirati određene strukture


podataka. Ove strukture podataka opisuju stranje dodjele u sistemu.

Neka je n broj procesa prihvaćenih na obradu i m broj resursa u sistemu. Tada su potrebne
sljedeće strukture podataka.

Slobodan: vektor dužine m koji određuje broj slobodnih resursa svake vrste. Ako je npr
slobodan[j] = k, to znači da je k istih resursa vrste j slobodno.

Maksimum: n x m matrica koja određuje maksimalne zahtjeve svakog pojedinog resursa. Ako
je npr maksimum[i,j] = k, tada proces Pi može zatražiti maksimalno k jedinica resursa Rj.

Dodjela: n x m matrica koja određuje broj jedinica svakog pojedinog resursa dodjeljenjog
svakom procesu. Ako je npr. Dodjela[i,j] = k, tada je proces Pi drži k jedinica resursa Rj.
Potreba: n x m matrica koja određuje broj jedinica svakog pojedinog resursa koji je još
potreban svakom procesu. Ako je npr potreba[i,j] = k, tada je procesu Pi potrebno još k jedinica
resursa Rj za obavljanje zadatka. Može primjetiti da je potreba[i,j] = maksimum[i,j] – dodjela[i,j].

You might also like