You are on page 1of 29

INTERNACIONALNI UNIVERZITET U NOVOM PAZARU FAKULTET INFORMATIKE I INFORMACIONIH TEHNOLOGIJA SMER ZA INFORMATIKU

SEMINARSKI RAD

MRTVE PETLJE

Novi Pazar,2010

Sadr aj:
-

1-

UVOD ................................................................................................................................... - 3 MRTVE PETLJE ................................................................................................................... - 4 Uvod u mrtve petlje............................................................................................................ - 5 Uslovi za mrtvu petlju .................................................................................................... - 5 Modelovanje mrtve petlje ............................................................................................... - 6 RESURSI .............................................................................................................................. - 9 Resursi koji se mogu oduzeti procesu (preemptable) i koji se ne mogu oduzeti procesu (nepreemptable) ................................................................................................................. - 9 Akvizicija resursa............................................................................................................. - 10 NOJEV ALGORITAM .................................................................................................... - 10 Detekcija mrtve petlje i oporavak ..................................................................................... - 11 Detekcija mrtve petlje sa jednim resursom svakog tipa ................................................. - 11 Detekcija mrtve petlje sa vi e resursa svakog tipa ......................................................... - 13 Oporavak od mrtve petlje ............................................................................................. - 16 Oporavak preko oduzmanja resursa (preemption) ......................................................... - 17 Oporavak putem vra anja stanja procesa unazad (Rollback) ......................................... - 17 Oporavak preko ubijanja procesa (killing processes) .................................................... - 18 IZBEGAVANJE MRTVE PETLJE .................................................................................. - 18 Sigurna i nesigurna stanja ............................................................................................. - 18 Bankarov algoritam za jedan resurs .............................................................................. - 20 SPRE AVANJE MRTVE PETLJE ................................................................................. - 21 Napad na uslov uzajamnog isklju ivanja ...................................................................... - 22 Napad na uslov zadr i i ekaj ....................................................................................... - 22 Napad na uslov nemogu nosti oduzimanja resursa bez posledica.................................. - 23 DRUGA PITANJA O MRTVIM PETLJAMA ..................................................................... - 23 Dvo-fazno zaklju avanje .................................................................................................. - 23 Mrtve petlje bez resursa ................................................................................................... - 24 Izgladnjivanje .................................................................................................................. - 25 ISTRA IVANJA MRTVIH PETLJI .................................................................................... - 25 ZAKLJU AK...................................................................................................................... - 27 Literatura ............................................................................................................................. - 28 -

2-

UVOD
U vi eprocesnom okru enju, vi e procesa se mogu me usobno takmi iti za kona an broj resursa. Kada proces zahteva resurs, a resurs nije raspolo iv, proces mo e zauvek ostati u stanje ekanja na resurs blokira se. Blokirani proces mo e zauvek ostati u tom stanju ukoliko potrebni resurs ostane neraspolo iv. Ova situacija je mogu a ukoliko je resurs prethodno dodeljen na kori enje drugom procesu koji tokom vremena tako e prelazi u stanje ekanja na drugi neraspolo iv resurs. Takva situacija naziva se zastoj, tj.blokada(mrtva petlja). pojava je sasvim mogu a, naro ito pri radu sa savremenim vi enitnim procesima, i treba je izbe i. Sistem koji je doveden u stanje stoja mora se oporaviti. U ovom poglavlju razmatrati emo mrtve petlje bli e, videti kako nastaju i sagledati neke na ine njihovog prevazila enja ili njihovog izbegavanja. Iako se ovaj materijal bavi mrtvim petljama u okviru operativnih sistema, one tako e nastaju u sistemima baza podataka i mnogim drugim podru jima ra unarskih nauka, pa je ovaj materijal u stvari primenjiv za mnoge vi eprocesne sisteme.

3-

MRTVE PETLJE
Ra unarski sistemi imaju dosta resursa koji istovremeno ne mogu biti kori teni od strane vi e procesa. Prost primer su tampa i, magnetne trake i zapisi u unutra njim sistemskim tabelama. Ako dva procesa istovremeno pristupaju tampa u dolazi do zabune, tako e ako dva procesa koriste isti zapis sistemske tabele dolazi do gre ke sistema fajliranja. Usled toga svaki operatvivni sistem ima mogu nost trenutnog dodeljivanja ekskluzivnog prava procesu za pristup odre enim resursima. Kod mnogih aplikacija proces mora imati ekskluzivni pristup ne samo jednom ve nekoliko resursa. Pretpostavimo, na primer, dva procesa koji imaju isti zadatak: da snime skeniran dokument na CD. Proces A tra i dozvolu za upotrebu skenera i dobija je. Proces B, koji je programiran na drugi na in, tra i prvo dozvolu za upotrebu CD snima a i tako e je dobija. Sada A tra i dozvolu za upotrebu CD pisa a, ali zahtev se odbija sve dok B ne oslobodi CD pisa . Me utim, B umesto da oslobodi CD pisa , tra i dozvolu za upotrebu skenera. U ovom trenutku procesi su blokirani i tako e ostati u nedogled. Ova situacija naziva se mrtva petlja (deadlock). Mrtve petlje se tako e de avaju i izme u vi e ma ina. Mnoge kancelarije imaju lokalnu mre u (LAN) instaliranu na ve em broju ra unara. esto su ure aji (kao to su skeneri, CD pisa i, tampa i i magnetni ita i) povezani u mre u kao deljeni resursi (shared) koji su dostupni svakom korisniku na svakom ra unaru u mre i. Ako se ovi ure aji mogu rezervisati na daljinu" (tj. sa korisnikovog ra unara) mo e se pojaviti ista vrsta mrtvih petlji kao one koje su prethodno opisane. Komplikovanija situacija mo e izazvati mrtve petlje koje uklju uju tri, etiri ili vi e ure aja i korisnika. Mrtve petlje se mogu pojaviti u raznim situacijama, a ne samo u onim koje uklju uju zahtjeve za upotrebu odre enih ulazno/izlaznih (I/O) ure aja. U sistemu baze podataka, na primjer, program nekad mora da zaklju a nekoliko slogova podataka koje koristi, da bi izbjegao takmi enje nad dozvolom za rad sa tim slogovima. Ako proces A zaklju a slog R1, a proces B zaklju a slog R2, i zatim svaki proces poku ava da zaklju a slog onog drugog, tada tako e imamo mrtvu petlju. Zna i mrtva petlja se mo e pojaviti kako na hardverskim resursima tako i na softverskim.

4-

Uvod u mrtve petlje


Mrtva petlja se formalno mo e ovako definisati: Niz procesa je u mrtvoj petlji ako svaki proces u nizu eka na doga aj koji samo drugi proces u nizu mo e izazvati. Zbog toga to svi procesi ekaju, nijedan od njih ne e nikad izazvati doga aj koji mo e probuditi drugog lana niza, pa svi procesi nastavljaju ekanje u beskona nost. Za ovaj model, pretpostavljamo da procesi imaju samo jednu nit (thread) i da nisu mogu i interapti za bu enje blokiranog procesa. Uslov da nema interapta je neophodan da bi se sprije ilo bu enje procesa koji je ina e u mrtvoj petlji, pomo u npr. alarma, i na taj na in osloba anja ostalih procesa u nizu. U ve ini slu ajeva, doga aj koji svaki proces eka je osloba anje nekih resursa koje trenutno koristi drugi lan niza. Drugim rije ima, svaki lan niza procesa u mrtvoj petlji eka na resurs koji posjeduje proces u mrtvoj petlji. Nijedan od procesa ne mo e da radi, nijedan od njih ne mo e da oslobodi resurse koje dr i i ni jedan od njih ne mo e da se probudi. Broj procesa i broj i vrsta resursa koji su u posjedu i koji su zatra eni nisu va ni. Ovakav rezultat se dobija za svaku vrstu resursa, dakle i za hardverske i za softverske.

Uslovi za mrtvu petlju 1. 2. 3. Uslov uzajamnog izuze a. Svaki resurs je ili trenutno dodjeljen ta no jednom procesu ili Uslov dr i i ekaj. Procesi koji trenutno dr e resurse koji su ranije dozvoljeni mogu Uslov nemogu nosti oduzimanja resursa bez posljedica Resursi koji su prethodno

je slobodan. tra iti nove resurse. odobreni ne mogu se silom oduzeti od procesa koji ih trenutno posjeduju. Moraju se osloboditi eksplicitno od strane procesa koji ih dr i (nonpreemption). 4. Uslov cirkularnog ekanja. Mora postojati cirkularni lanac od dva ili vi e procesa, gdje svaki eka na resurs kojeg dr i idu i lan lanca. Sva etiri uslova moraju da postoje da bi nastala mrtva petlja. Ako samo jedan od njih nedostaje, mrtva petlja nije mogu a.
-

5-

Ni ta ne vrijedi to to se svaki uslov odnosi na ono to sistem mo e da ima ili nema. Mo e li se odre eni resurs dodijeliti istovremeno na vi e od jednog procesa? Mo e li proces dr ati resurs i tra iti drugi? Mogu li resursi biti oduzeti bez posljedica? Da li mogu postojati cirkularna ekanja? Kasnije emo vidjeti kako mrtve petlje mogu da se razrije e poku avanjem negiranja nekih od datih uslova. Modelovanje mrtve petlje Holt (1972) pokazao je kako se mogu modelovati ova etiri uslova kori tenjem direktnih grafova. Grafovi imaju dvije vrste vorova: procese prikazane kao kru i e, i resurse prikazane kao kvadrati e. Linija od vora resursa do vora procesa zna i da je resurs prethodno bio tra en, dozvoljen i trenutno u posedu tog procesa. Na slici 1. (a), resurs R je trenutno dodeljen procesu A. Linija od procesa do resursa zna i da je proces trenutno blokiran ekanjem na resurs. Na slici 1.(b) proces B eka na resurs S. Na slici 1.(c) vidimo mrtvu petlju: proces C eka na resurs T, koji je trenutno u posedu procesa D. Proces D ne e skoro da oslobodi resurs T jer eka na resurs U, kojeg dr i proces C. Oba procesa e ekati beskona no dugo. Krug na grafu zna i da su procesi i resursi u mrtvoj petlji (pretpostavljamo da postoji resurs svake vrste). U ovom primeru krug je C-T-D-U-C. Pogledajmo sada primer kako se mogu upotrebiti grafovi resursa. Zamislimo da imamo tri procesa A, B i C, i tri resursa R, S i T.

Slika 1. Grafovi alokacije resursa. (a)dr anje resursa. (b) zahtevanje resursa. (c) mrtva petlja

6-

Posle koraka (q), procesu B se mo e dozvoliti S, jer je A zavr io, a C ima sve to mu je potrebno. ak iako bi se B mogao eventualno blokirati kada bude tra io T, ne mo e se desiti mrtva petlja. B e jednostavno ekati dok C ne zavr i. Pretpostavimo sada, da proces i prora unava i daje ulaz/izlaz, pa je kru ni tok razuman algoritam rasporeda. Zahtev za resursima mo e da se pojavi po redosledu datom na slici 2.(d). Ako se tih est zahteva sprovede po tom redosledu, est rezultuju ih grafova prikazani su na slici 2.(e)-(j). Posle zahteva 4, A je blokiran ekaju i na S, kako je prikazano na slici 2.(h). U idu a dva koraka B i C se tako e blokiraju, to dovodi do mrtve petlje date na slici 2.(j). Me utim, kao to smo ve naveli, od operativnih sistema se ne zahteva da izvr avaju procese po nekom odre enom redosledu. Prakti no, ako dozvola odre enog zahteva mo e dovesti do mrtve petlje, operativni sistem mo e jednostavno suspendovati proces bez odobravanja zahteva (tj. samo rasporediti proces) dok ne bude sigurno da se ne e desiti mrtva petlja. Na slici 2. vidimo, da je operativni sistem mogao suspendovati proces B, da je znao da e do i do mrtve petlje, umesto da mu dozvoli resurs S. Kada bi samo proces A i C radili, dobili bi zahteve i osloba anje resursa prikazane na slici 2.(k) umesto onih na slici 2.(d). Ova sekvenca vodi ka grafovima resursa datim na slikama 2.(l)-(q), koji ne dovode do mrtve petlje. Posle koraka (q), procesu B se mo e dozvoliti S, jer je A zavr io, a C ima sve to mu je potrebno. ak iako bi se B mogao eventualno blokirati kada bude tra io T, ne mo e se desiti mrtva petlja. B e jednostavno ekati dok C ne zavr i.

7-

Slika 2. Primer kako dolazi do mrtve petlje i kako ona mo e da se izbegne

Uop teno, koriste se etiri strategije prilikom rada sa mrtvim petljama. 1. nas. 2. 3. Detekcija i ozdravljenje. Neka se dese mrtve petlje, detektujte ih i pokrenite akciju. Dinami ko izbegavanje pa ljivom alokacijom resursa. 8Ignorisanje celokupnog problema. Ako ga ignori emo mo da e on (problem) ignorisati

4.

Prevencija (spre avanje), pomo u strukturalnog negiranja jednog od etiri uslova koji su

potrebni za stvaranje mrtve petlje.

RESURSI
Mrtve petlje mogu nastati kada je procesu dozvoljen ekskluzivan pristup ure aju, fajlu, itd. Da bi diskutovali o mrvim petljama to je uop tenije mogu e, objekte kojima je dozvoljen pristup zva emo resursi. Resurs mo e biti hardverski ure aj (CD snima ) ili dio informacije (zaklju an slog u bazi podataka). Ra unar ima mnogo razli itih resursa koje mo e koristiti. Za neke resurse mo e biti dostupno nekoliko jednakih primeraka, kao to su tri CD snima a. Kada su nekoliko kopija resursa slobodne, bilo koja od njih mo e biti upotrebljena da zadovolji zahtev za tim resursom. Ukratko, resurs je sve to se mo e koristiti od strane jednog procesa u svakom deli u vremena.

Resursi koji se mogu oduzeti procesu (preemptable) i koji se ne mogu oduzeti procesu (nepreemptable)
Postoje dva tipa resursa: preemptable i nepreemptable. Preemptable resurs je onaj koji mo e da se oduzme procesu koji ga koristi bez nekih lo ih posledica. Memorija je primer jednog takvog resursa. Razmatrajmo, na primer, sistem sa 32MB memorije, jednim tampa em i dva 32-MB procesa koji oba treba da tampaju ne to. Proces A tra i i dobija tampa , te po inje da prora unava vrednosti za tampanje. Pre nego to zavr i prora unavanje, vreme koje mu je dodeljeno biva prekora eno i on biva zamenjen. Sada startuje proces B i poku ava dobiti tampa ali neuspe no. Imamo mogu u situaciju mrtve petlje jer A ima tampa a B ima memoriju, a ni jedan ne mo e da nastavi bez resursa koji je u posedu drugog procesa. Na sre u mogu e je oduzeti memoriju od B izbacuju i ga, a ubacuju i proces A na njegovo mesto. Sad A mo e da radi, da obavi tampanje, a zatim i da oslobodi tampa . Dakle ne dolazi do pojave mrtve petlje. Neptreemptable resurs, za razliku od prethodnog, ne mo e biti oduzet od procesa koji ga trenutno koristi bez posledica. Ako je proces po eo da upisuje podatke na CD-ROM, iznenadno
-

9-

oduzimanje CD pisa a od procesa i njegovo dodeljivanje drugom procesu rezultova e u o te enom CD-u. CD pisa i nisu resursi koji se mogu oduzeti procesu. Uop teno, mrtve petlje se sre u kod resursa koji se ne mogu oduzeti procesu bez posledica. Potencijalne mrtve petlje koje se sre u kod resursa koji se mogu oduzeti procesu mogu se esto razre iti putem realokacije resursa sa jednog procesa na drugi. Stoga emo se fokusirati na resurse koji se ne mogu oduzeti procesu bez posledica.

Akvizicija resursa
Za neke vrste resursa, kao to su slogovi u sistemu baze podataka, do korisnika procesa je kako e da rasporedi upotrebu samih resursa. Jedan od mogu ih na ina da se dozvoli korisniku raspodela resursa je da se ve e semafor za svaki resurs. Svi semafori su inicijalno postavljeni na Promene se mogu koristiti jednako dobro. Tri koraka navedena iznad se implementiraju kao dolje na semaforu za akviziciju resursa, kori tenje resursa i na kraju gore za osloba anje resursa. Nekad procesi potra uju dva ili vi e resursa. Ako je potrebno vi e od dva resursa, oni se mogu dobiti jedan za drugim. Do sada nema mnogo problema. Dok je samo jedan proces uklju en u razmatranje sve fino radi. Naravno, sa samo jednim procesom i nema potrebe za formalnim potra ivanjem resursa, jer ne postoji konkurencija nad njima. Zbog mogu nosti tako lakog pojavljivanja mrtve petlje, mnogo istra ivanja je upravo sprovedeno da bi se lak e izlazilo na kraj sa njima. Ovo poglavlje diskutuje o mrtvim petljama do detalja i o tome to se mo e u initi u vezi sa njima.

NOJEV ALGORITAM
Najjednostavniji pristup je nojev algoritam: Stavi glavu u pesak i pretvaraj se da nema problema. Razli iti ljudi na ovu strategiju reaguju na razli ite na ine. Matemati ari nalaze da je ona totalno neprihvatljiva i da se mrtve petlje moraju spre iti po svaku cenu. In enjeri pitaju koliko esto se problem mo e o ekivati, koliko esto sistem pada zbog drugih razloga, i koliko su mrtve petlje, u stvari, ozbiljne. Ako se mrtve petlje de avaju u proseku jednom u pet godina, a sistem pada zbog gre aka hardvera, gre aka u kompajliranju i bagova operativnog sistema jednom nedeljno, ve ina in injera ne e biti voljna da radi na eliminisanju mrtvih petlji.
-

10 -

Maksimalan broj otvorenih fajlova je ograni en veli inom i- vora tabele, pa se de ava sli an problem kada se tabela napuni. Prostor na disku je drugi ograni en resurs. U stvari, skoro svaka tabela operativnog sistema predstavlja ograni en resurs. Treba li da poni timo sve ovo jer je mogu e da u kolekciji od n procesa svaki potra uje 1/n od ukupnog broja, i zatim da svaki proces tra i po jo jedan. Ve ina operativnih sistema, uklju uju i UNIX i Windows, samo ignori u problem pod pretpostavkom da e ve ina korisnika radije prihvatiti povremenu mrtvu petlju nego pravila koja bi ograni avala sve korisnike na kori tenje jednog procesa, jednog otvorenog fajla, itd. Ako se mrtve petlje mogu eliminisati besplatno, ne bi bilo puno diskusije o tome. Problem je u tome to je cena eliminisanja mrtvih petlji vrlo visoka, najvi e u smislu postavljanja neprakti nih ograni enja na procese, to emo videti uskoro. Zna i, susreli smo se sa neugodnom trgovinom izme u prakti nosti i ta nosti i velikim brojem diskusija o tome to je od toga va nije, i kome. Pod ovakvim uslovima te ko je uop teno na i re enja za mrtvu petlju.

Detekcija mrtve petlje i oporavak


Druga tehnika je detekcija i oporavak. Kada se koristi ova tehnika sistem ne poku ava spre iti pojavu mrtvih petlji. Umesto toga sistem dopu ta da se one dese, poku avaju i ih detektovati, i onda preuzima neku akciju u cilju saniranja posledica koje su izazvale. U ovom poglavlju vide emo neke na ine detekcije mrtve petlje, i saniranja posledica njihovog dejstva. Detekcija mrtve petlje sa jednim resursom svakog tipa

Po nimo sa najjednostavnijim slu ajem: neka postoji po jedan resurs svakog tipa. Takav sistem mo e imati jedan skener, jedan CD pisa , jedan tampa i jedan magnetni ita . Drugim re ima, isklju ujemo sisteme sa dva tampa a za sada. Njih emo razmatrati kasnije, koriste i drugu metodu.Za takav sistem mo emo konstruisati graf resursa za sliku 3. Ako ovaj graf sadr i jedan ili vi e krugova, zna i da postoji mrtva petlja. Svaki proces koji je deo kruga nalazi se u mrtvoj petlji. Ako ne postoji ni jedan krug zna i da sistem nije u mrtvoj petlji.

11 -

Kao primer kompleksnijeg sistema od onih koje smo do sada razmatrali, posmatrajmo sistem sa sedam procesa. Neka su to procesi od A do G. Neka postoji i est resursa od R do W. Stanja resursa, odnosno, kome su trenutno dodeljeni i koji proces ih zahteva, data su kako sledi:

1. Proces A poseduje R i zahteva S. 2. Proces B ne poseduje ni jedan resurs ali zahteva T. 3. Proces C ne poseduje ni jedan resurs ali zahteva S. 4. Proces D poseduje U i zahteva S i T. 5. Proces E poseduje T i zahteva V. 6. Proces F poseduje W i zahteva S. 7. Proces G poseduje V i zahteva U.

Pitanje je slede e: Da li je ovaj sistem u mrtvoj petlji, i ako jeste koji su procesi uklju eni u nju? .Da bi dali odgovor na ovo pitanje konstrui imo graf resursa kakav je dat na slici 3.(a). Kao to vidimo, ovaj graf sadr i jedan krug. Krug je prikazan na slici 3.(b). Vidimo da su procesi D, E i G u mrtvoj petlji. Procesi A, C i F nisu u mrtvoj petlji jer se S mo e dodeliti svakom tom procesu, koji ga osloba a kada zavr i svoj posao. Tada preostala dva procesa mogu da ga redom koriste i oslobode.

Slika 3. (a) Graf resursa. (b) Krug izdvojen iz grafa.

Iako je relativno lako odrediti koji je proces u mrtvoj petlji (jednostavnim pogledom na graf resursa), za prave sisteme koristi se formalni algoritam za detekciju mrtve petlje. Poznati su
-

12 -

mnogi algoritmi koji se koriste u tu svrhu. Mi emo razmotriti jednostavan algoritam koji pretra uje graf i odre uje da li postoji u njemu krug ili ne. Ovaj algoritam koristi jednu strukturu podataka, L - lista vorova. U toku rada algoritma, markirati e se linije koje su ve pregledane da bi se spre ilo ponavljanje pretra ivanja. Algoritam pretra uje graf slede im koracima:

1. Za svaki vor, N na grafu izvode se slede ih 5 koraka sa N kao po etnim vorom. 2. Inicijalizira se L kao prazna lista, i ozna e se sve linije kao nemarkirane. 3. Doda se trenutni vor na kraj L i provjeri se da li se vor pojavljuje u L dva puta. Ako se pojavljuje, graf ima krug i algoritam zavr ava. 4. Od datog vora, pogledamo postoje li nemarkirane izlazne linije. Ako postoje odra uje se korak 5, a ako ne postoje korak 6. 5. Odabere se jedna nemarkirana izlazna linija i ozna i. Zatim je pratimo do idu eg vora (trenutni vor) i prelazi se na korak 3. 6. Do li smo do slepog puta. Odstranimo ga i vratimo se na prethodni vor (onaj koji je bio trenutni vor pre ovoga). Sada on postaje opet trenutni vor i vra amo se na korak 3. Ako je vor po etni, graf ne sadr i ni jedan krug i algoritam ovde zavr ava. Detekcija mrtve petlje sa vi e resursa svakog tipa Kada postoje vi estruke kopije nekih resursa, potreban je drugi pristup radi detektovanja mrtvih petlji. Predstavi emo algoritam za pronala enje mrtvih petlji baziran na matricama od n procesa: P1 do Pn. Neka je m broj klasa resursa, sa E1 resursa klase 1, E2 resursa klase 2 i uop teno Ei resursa klase i (1 e i e m). E je postoje i vektor resursa. On daje ukupan broj postoje ih primeraka svakog resursa. Na primer, ako su klasa 1 magnetni ita i, tada E1=2 zna i da sistem ima dva magnetna ita a.U nekom trenutku neki od resursa su zauzeti ili dodeljeni. Neka je Avektor dostupnih resursa, gde je Ai broj primeraka resursa i koji su trenutno dostupni (tj. nedodeljeni). Ako su oba od na a dva magnetna ita a dodeljena, A1 je 0.

13 -

Potrebna su nam dva niza: C -matrica trenutne alokacije, i R- matrica zahteva. i

ti red

matrice C govori o tome koliko primeraka svakog resursa trenutno ima proces Pi. Tako je Cij broj primeraka j tog resursa koje ima i ti proces. Sli no Rij je broj primeraka j tog resursa

koje proces Pi zahteva. Ove etiri strukture podataka prikazane su na slici 4.

Slika 4. etiri strukture podataka potrebne za algoritam detekcije mrtve petlje.

Veoma va no je re i da resurs mo e biti ili alociran ili slobodan. Ovo se mo e napisati i ovako:
n

Cij  Aj ! Ej
i !1

Drugim rije ima, ako svim primercima j

tog resursa koji su alocirani dodamo sve primerke koji

su slobodni, dobijamo koliko primeraka te klase resursa u stvari postoji.Algoritam detekcije mrtve petlje zasnovan je na upore ivanju vektora. Defini imo relaciju A e B nad dva vektora A i B kao: svaki elemenat A je manji ili jednak od odgovaraju eg elementa B. Matemati ki A e B stoji ako i samo ako je: Aie Bi, za 1 e i e m.Svaki proces je inicijalno postavljen kao nemarkiran. Kako algoritam napreduje, procesi e biti markirani, to zna i da su u stanju da izvr e zapo eti posao i da nisu u mrtvoj petlji. Kada algoritam zavr i, za svaki nemarkiran proces se zna da je u mrtvoj petlji.Algoritam detekcije mrtve petlje se sada mo e dati kako sledi:

1. Tra enje nemarkiranog procesa Pi, za koje je i ti red R-a manji ili jednak A 2. Ako je tako, dodaje se i -ti red od C na A, markira proces i vra a na korak1
-

14 -

3. Ako takav proces ne postoji, algoritam zavr ava.

Kad algoritam zavr i, svi nemarkirani procesi, ako ih ima, su u mrtvoj petlji.U koraku 1 algoritam tra i proces koji mo e da se izvr i do kraja. Takav proces se karakteri e kao proces koji ima zahteve za resursima koji su trenutno slobodni i koji se stoga mogu odobriti. Takav proces tada odra uje svoj posao, zatim osloba a resurse koji tada ponovo postaju dostupni (slobodni) resursi. On se markira kao izvr en proces. Ako se svi procesi mogu izvr iti, tada ni jedan nije u mrtvoj petlji. Ako neki od njih ne mogu nikada da se izvr e algoritam nije deterministi ki, rezultat je uvek isti. Kao primer rada algoritma za detekciju mrtve petlje, razmotrimo sliku 5. Imamo tri procesa i etiri klase resursa: magnetni ita i, ploteri, skeneri i CD-ROM ovi. Proces 1 ima oni su u mrtvoj petlji. Iako

jedan skener. Proces 2 ima dva magnetna ita a i CD-ROM. Proces 3 ima ploter i dva skenera. Svaki proces zahteva dodatne resurse, kako je prikazano matricom R.Da bi pokrenuli algoritam detekcije mrtve petlje, tra imo proces iji zahtevi za resursima mogu biti zadovoljeni. Prvi ne mo e biti zadovoljen jer nema ni jedan slobodan CD ROM. Drugi ne mo e biti zadovoljen jer nema slobodnog skenera. Sre om tre i mo e biti zadovoljen, pa se pokre e i kada zavr i vra a sve resurse koje je dr ao daju i: A=(2 2 2 0) Sada proces 2 mo e da se pokrene, i nakon toga vra a svoje resurse daju i: A=(4 2 2 1) Sada i preostali proces mo e da se izvr i. Dakle, u sistemu nema mrtve petlje.

15 -

Slika 5. Primer za algoritam detekcije mrtve petlje.

Sada zamislimo malu promenu situacije date na slici 5. Pretpostavimo da proces 2 zahteva CD-ROM kao i dva magnetna ita a i ploter. Nijedan od zahteva ne mo e biti zadovoljen, pa je sistem u mrtvoj petlji.Sada kada znamo kako detektovati mrtve petlje, postavlja se pitanje kada ih tra iti. Jedna mogu nost je da se proverava njihovo postojanje svaki put kada se postavi zahtev za resursom. Tako je sigurno da e biti detektovane najranije mogu e, ali ovo tro i mnogo procesorskog vremena. Alternativno, mo e se mrtva petlja tra iti svakih k minuta ili samo onda kada upotreba procesora pala ispod nekog praga. Razlog razmatranja upotrebe procesora je taj to ako je mnogo procesa u mrtvoj petlji, biti e nekoliko procesa koji se mogu izvr iti, i procesor e esto biti slobodan.

Oporavak od mrtve petlje Pretpostavimo da je na algoritam za detekciju mrtve petlje uspio i da je detektovao mrtvu petlju. ta sada? Potreban je neki na in oporavka i ponovnog pokretanja sistema. U ovom poglavlju diskutovati emo razne na ine oporavka od mrtve petlje. Ni jedan od njih, me utim, nije naro ito atraktivan.

16 -

Oporavak preko oduzmanja resursa (preemption) U nekim slu ajevima mogu e je da se privremeno oduzme resurs od njegovog trenutnog korisnika i dodeli drugom procesu. U mnogo slu ajeva, potrebna je intervencija samog korisnika. Na primer, da bi se laserski tampa oduzeo od trenutnog njegovog korisnika, operator mo e da skupi sve ve od tampane stranice na hrpu. Tada proces mo e biti suspendovan. Sada tampa mo e biti dodeljen drugom procesu. Kada on zavr i, hrpa od tampanih stranica se mo e opet vratiti na tampa i restartovati originalni proces. Sposobnost oduzimanja resursa od procesa, davanje drugom procesu na kori tenje tog resursa, vra anje resursa prvobitnom procesu a da on to ne primeti veoma zavisi od prirode tog resursa. Oporavak u ovom slu aju esto je te ko ili ak nemogu e izvesi. Odabiranje procesa koji e se suspendovati zavisi od prirode resursa, dakle koji e se resurs najlak e vratiti prvobitnom procesu.

Oporavak putem vra anja stanja procesa unazad (Rollback) Kako dizajneri sistema i korisnici ma ina znaju da su mrtve petlje mogu e, mogu e je napraviti da se procesi periodi no ekiraju. ekiranje procesa je zapisivanje trenutnog stanja ekiranje ne sadr i samo procesa u fajl tako da bi se kasnije moglo to stanje restartovati.

memorijsku sliku ve i stanje resursa, odnosno koji resursi su u tom trenutku bili dodeljeni procesu. Da bi bila efektivnija, nova ekiranja ne bi trebala izbrisati stara nego se upisati u nove fajlove. Tako bi se stvarali novi fajlovi stanja procesa sve dok god se on izvr ava. Kada se detektuje mrtva petlja, lako je videti koji su resursi zahtevani. Da bi se sproveo oporavak, proces koji dr i zahtevani resurs se vra a na stanje koje je imao pre zahtevanja tog resursa tako to se restartuje neki od pro lih fajlova stanja procesa. Sav posao odra en od tog stanja na dalje propada (npr. ako su od tampane neke stranice a u me uvremenu se stanje vratilo na prethodno, bacaju se jer e biti ponovo od tampane). Proces se resetuje na prethodno stanje kada nije imao resurse koje sada dr i proces koji je bio u mrtvoj petlji. Kada se restartuje, proces ponovo zahteva resurs, ali sada on eka da resurs postane slobodan.

17 -

Oporavak preko ubijanja procesa (killing processes) Najgrublji i najjednostavniji na in prekidanja mrtve petlje je ubijanje jednog ili vi e procesa. Jedna mogu nost je ubijanje procesa iz kruga. Uz malo sre e, drugi procesi e nastaviti svoj posao. Ako ovo ne pomogne, jednostavno se nastavi sa ubijanjem procesa iz kruga, sve dok se krug sasvim ne prekine. Alternativno, proces koji nije u krugu se tako e mo e izabrati kao rtva da bi oslobodili resurse koje on dr i. U ovom slu aju, proces koji treba da se ubije je pa ljivo odabran jer dr i resurse koji su zahtevani od nekog procesa iz kruga. Na primer, jedan proces mo e da dr i tampa , a da zahteva ploter, dok drugi proces dr i ploter i zahteva tampa . Ova dva procesa su u mrtvoj petlji. Tre i proces dr i identi an tampa i identi an ploter i normalno radi. Ubijanjem tre eg procesa osloba aju se njegovi resursi i prekida se mrtva petlja prva dva procesa.Gde je mogu e, najbolje je ubiti proces koji se mo e restartovati od samog po etka bez lo ih posledica. Na primer, kompajliranje se uvek mo e restartovati jer kompajler u stvari samo ita izvorni fajl i pravi objektni fajl.Sa druge strane, procesi koji popunjavaju baze podataka, ne mogu se uvek dobro restartovati po drugi put. Ako proces doda 1 nekom slogu u bazi, pu taju i je u rad, pa je ubijaju i, ponovo pu tanje u rad dodati e 2 u slog, to nije ta no.

IZBEGAVANJE MRTVE PETLJE


U diskusiji o mrtvim petljama, pre utno smo pretpostavili da kada proces zahteva resurse, da ih zahteva sve od jednom (matrica R sa slike 5.). Kod ve ine sistema, me utim, resursi se zahtevaju jedan po jedan. Sistem treba da zna odlu iti kada je odobravanje zahtevanih resursa sigurno a kada nije, i dozvoliti resurse samo u prvom slu aju. Postavlja se pitanje: Postoji li algoritam koji mo e uvek izbe i mrtve petlje pravilnim odlu ivanjem? Odgovor je: da mogu se izbe i mrtve petlje ali samo kada je odre ena informacija dostupna unapred

Sigurna i nesigurna stanja

U bilo kom trenutku vremena, trenutno stanje sastoji se od E, A, C i R. Za stanje ka emo da je sigurno kada nije u mrtvoj petlji i postoji neki raspored po kojem se svaki proces odvija
-

18 -

dok se ne zavr i, ak i ako svi procesi odjednom zahtevaju maksimalni broj resursa koji im mo e biti dodeljen. Ovaj koncept najlak e je ilustrovati primjerom sa jednim resursom. Na slici 7. imamo stanje procesa A koji ima 3 primerka resursa ali mo da e zahtevati ukupno 9 primeraka. B trenutno dr i 2, a mo da e zahtevati ukupno 4 primerka, kasnije. Sli no, C dr i 2, a mo da e zahtevati jo 5 primeraka resursa. Ukupan broj primeraka resursa je 10, zna i po to je 7 ve alocirano, ostala su jo 3 slobodna.

Slika 7. Demonstracija da je stanje (a) sigurno

Stanje na slici 7. (a) je sigurno jer sekvence alokacija omogu avaju izvr enje itavog procesa. Naime, raspored mo e jednostavno pokrenuti isklju ivo proces B, sve dok ne zatra i i dobije dva nova primerka resursa. Ovo stanje prikazano je na slici 7.(b). Kada B zavr i, dolazimo do stanja datog slikom 7.(c). Sada raspored mo e da pokrene C, to dovodi do slike 7.(d). Kada C zavr i dobijamo 7.(e). Sada A mo e da dobije est primeraka resursa koje tra i i tako e mo e da zavr i. Tako da je stanje 7.(a) sigurno jer pa ljivim rasporedom procesa, sistem izbegava mrtvu petlju. Sada pretpostavimo da imamo po etno stanje dato na slici 8.(a), ali ovog puta A zahteva i dobija druge resurse, to je dato slikom 8.(b). Da li mo emo prona i sekvencu koja bi garantovala uspe an rad? Da poku amo. Raspored mo e da pokrene B dok ne zatra i sve svoje resurse, to je dato na slici 8.(c).

19 -

Slika 8. Demonstracija da stanje (b) nije sigurno

Nakon nekog vremena B zavr ava i dobijamo stanje na slici 8.(d). Do li smo do zaglavljivanja. Postoje samo 4 slobodna primerka resursa, a svaki od aktivnih procesa zahteva 5. Ne postoji sekvenca koja garantuje zavr etak. Tako je odluka o alokaciji koja je promenila stanje sistema od onog sa slike 8.(a) na stanje na slici 8.(b), u stvari promenila sigurno stanje sistema u nesigurno.Ni ta ne zna i to nesigurno stanje nije mrtva petlja. Po ev i od slike 8.(b), sistem mo e da radi neko vreme. u stvari, proces se ak mo e i zavr iti. Nadalje, mogu e je da A oslobodi resurse prije nego to tra i nove, tako omogu avaju i da C zavr i i izbegavaju i na taj na in mrtvu petlju. Tako je razlika izme u sigurnog i nesigurnog stanja u tome to sistem u sigurnom stanju mo e garantovati da e se svi procesi zavr iti, dok proces u nesigurnom stanju ne mo e dati nikakvu garanciju o zavr avanju procesa.

Bankarov algoritam za jedan resurs Algoritam rasporeda koji mo e izbe i mrtve petlje je nastao zahvaljuju i Dijkstra (1965) i poznat je kao bankarev algoritam a koristi se kao dodatak algoritma za detekciju mrtvih petlji. Modelovan je tako da bi bankar malog grada mogao raditi sa grupom korisnika kojima je odobrio kredit. Algoritam proverava da li odobravanje zahteva za kredit dovodi do nesigurnog stanja. Ako dovodi, tada se zahtev za kreditom odbija. Ako odobravanje dovodi do sigurnog stanja, ono se odobrava. Na slici 9.(a) vidimo 4 korisnika A, B, C, D, svaki od njih ima odobren odre eni kredit (1 jedinica =1K$). Bankar zna da svi korisnici ne e odmah trebati sav kredit, pa je odvojio 10 jedinica umjesto 22 da bi ih uslu io (U ovoj analogiji korisnici su procesi ,a jedinice su resurs dok je banka operativni sistem).
-

20 -

Slika 9. Stanja alokacije resursa: (a) sigurno, (b) sigurno, (c) nesigurno.

Korisnici, s obzirom na posao kojim se bave, tra e kredite s vremena na vreme (zahtevaju resurse). U odre enom trenutku, situacija je kao na slici 9.(b). Ovo stanje je sigurno jer su ostale jo dve jedinice, pa bankar mo e da odlo i sve zahteve osim C, tako mu omogu avaju i da zavr i i oslobodi 4 njegova resursa. Sa 4 jedinice, bankar mo e sada da ih prepusti D ili B koji ih tra e, itd.. Razmotrimo to bi se desilo da je zahtev B za jednom ili vi e jedinica odobren to je dato na slici 9.(b). Do i emo u stanje na slici 9.(c) koje je nesigurno. Ako svi korisnici odjednom zatra e maksimalan kredit, bankar ne mo e da zadovolji ni jednog od njih pa iz toga sledi da je e sistem u i u mrtvu petlju. Nesigurno stanje ne mora da dovede do mrtve petlje, po to korisnik mo da ne e imati potrebu za svim kreditom ali bankar ne mo e da ra una na takvo stanje.

SPRE AVANJE MRTVE PETLJE


Videli smo da se mrtva petlja ne mo e izbe i, jer su sistemu potrebne informacije o budu im zahtevima za resurse, koje nisu poznate. Kako onda sistemi izbegavaju pojavu mrtve petlje? Odgovor le i u ona etiri uslova za postojanje mrtve petlje (Coffman et al. 1971). Ako mo emo osigurati da se bar jedan uslov nikada ne ispuni, mrtva petlja ne mo e nikada nastati.

21 -

Napad na uslov uzajamnog isklju ivanja Ako se ekskluzivno ne dodele resursi jednom procesu, mrtva petlja se ne e nikada desiti. Me utim, jasno je da e do i do haosa ako dozvolimo da dva procesa istovremeno koriste tampa . Ako je izlaz tampa a u spoolingu*, tj. poslat je u memoriju ili na disk odakle e mu se kasnije pristupiti, nekoliko procesa mogu da u isto vreme generi u izlaz. Po ovom modelu, jedini proces koji stvarno fizi ki zahteva tampa je njegov serverski program (daemon). Po to serverski program nikad ne zahteva druge resurse, mo emo eliminisati mrtvu petlju kod tampa a. Na nesre u, ne mogu svi ure aji da budu u spoolingu (tabela procesa se tada ne pona a ba najbolje). Nadalje, nadmetanje nad prostorom na disku za spooling samo po sebi vodi u mrtvu petlju. to bi se desilo da postoje dva procesa koji popune, svaki po pola, slobodan prostor za spooling izlaznim podacima, a da ni jedan ne zavr i sa pravljenjem tih izlaznih podataka. Ako je serverski program tampa a programiran tako da po ne tampanje pre nego to se sav izlaz na e u spoolingu tampa mo e da eka sa tampanjem ako je izlazni proces odlu io da sa eka nekoliko sati prije nego to po ne sa tampanjem. Zbog toga serverski programi su programirani da tampaju tek kada je dostupan itav fajl. U ovom slu aju imamo dva procesa koji su odradili dio, ali ne i sve, izlazne podatke, i stoga ne mogu da nastave dalje. Nijedan od procesa ne e nikada da zavr i, to bi zna ilo da na disku imamo mrtvu petlju.Ovde le i za etak ideje koja mo e biti esto primenjivana. Izbegavanje dodeljivanja resursa osim u slu ajevima kada je to apsolutno neophodno, i osiguravanje da to manji broj procesa mo e zatra iti dati resurs. Napad na uslov zadr i i ekaj Drugi od uslova koji su dati u Coffman et al. izgleda malo vi e obe avaju i. Ako mo emo da spre imo da procesi koji dr e rersurse ekaju na nove resurse, mo emo eliminisati mrtvu petlju. Jedan na in da se ovo postigne je da tra imo da svi procesi zahtevaju sve svoje resurse pre nego to po nu sa izvr avanjem. Ako je sve slobodno, procesu e biti dodeljeni resursi koje zahteva i on mo e da odradi svoj posao do kraja. Ako su jedan ili vi e resursa zauzeti, ni jedan 22 -

resurs mu se ne e dodeliti, i on mora ekati.Neposredan problem ovog pristupa je da mnogi procesi ne znaju koliko e resursa trebati sve dok ne po nu da rade. U stvari, da znaju, bankarov algoritam bi bio primjenjiv. Drugi problem je to se sa ovakvim pristupom resursi ne e optimalno koristiti. Uzmimo, kao primjer, proces koji ita podatke sa jedne magnetne vrpce, analizira ih jedan sat, zatim rezultate upisuje na drugu magnetnu vrpcu i daje rezultate na ploteru. Ako se svi resursi moraju zahtjevati unaprijed, proces e dr ati izlaznu magnetnu vrpcu i ploter itav sat.Ipak, neki vi ekorisni ki sistemi tra e od korisnika da navede sve resurse potrebne za svaki posao. Sistem tada dr i te resurse sve dok se posao ne odradi do kraja. Iako ovaj na in optere uje programera i neoptimalno koristi resurse, on spre ava pojavu mrtve petlje.Malo druga iji na in ugro avanja uslova zadr i i ekaj je da sistem zatra i od procesa koji zahtjeva resurs da prvo privremeno oslobodi sve resurse koje trenutno dr i. Tada da poku a odjednom dobiti sve to mu je potrebno.

Napad na uslov nemogu nosti oduzimanja resursa bez posledica Napad na tre i uslov je jo manje obe avaju i od napada na drugi. Ako je procesu dodijeljen tampa i proces ga trenutno koristi ( tampa), nasilno oduzimanje tampa a je u najboljem slu aju te ko, a u najgorem nemogu e.

DRUGA PITANJA O MRTVIM PETLJAMA


U ovom poglavlju razmotri emo nekoliko razli itih pitanja koja se odnose na mrtvu petlju, i to : dvo-fazno zaklju avanje, mrtve petlje bez resursa i izgladnjivanje.

Dvo-fazno zaklju avanje


Iako ni izbjegavanje ni prevencija, uop teno gledaju i, nisu naro ito obe avaju i na ini, postoje mnogi dobri algoritmi koji se koriste za specijalne namjene. Na primjer, u mnogim sistemima baza podataka, operacija koja se esto de ava je zahtjev za zaklju avanje nekoliko slogova, a zatim i a uriranje tih slogova. Kada nekoliko procesa radi u isto vrijeme, postoji
-

23 -

realna opasnost od pojave mrtvih petlji.Pristup koji se esto koristi je dvo-fazno zaklju avanje. U prvoj fazi proces poku ava da zaklju a istovremeno sve slogove koji su mu potrebni. Ako uspije u tome, po inje druga faza ura en nikakav posao u prvoj fazi. Ako u prvoj fazi postoji neki slog koji je ve prethodno zaklju an (od strane drugog procesa), proces osloba a sve zaklju ane slogove i ponovo po inje prvu fazu. Na odre en na in, ovaj pristup je sli an zahtjevu za svim potrebnim resursima unaprijed ili bar prije nego to se odradi ne to poslije ega nema povratka u staro stanje. Kod nekih varijacija dvo-faznog zaklju avanja ne postoji osloba anje i restartovanje ako se nai e na odre eni slog koji ve zaklju an u prvoj fazi. Kod njih je mogu a pojava mrtve petlje.Me utim, ova strategija, uop teno, nije primjenjiva. U sistemima u realnom vremenu i sistemima kontrole procesa, npr. nije prihvatljivo, usljed nedostupnosti resursa, proces samo djelomi no okon ati i po eti sve ponovo. Nije prihvatljivo ni po eti ispo etka ako je proces pro itao ili poslao poruke mre i, a urirao fajlove, ili bilo to drugo to se ne mo e ponoviti na zadovoljavaju i na in. Algoritam radi samo u onim slu ajevima kada je programer vrlo pa ljivo napravio raspored, tako da se program mo e zaustaviti u bilo kojem trenutku tokom prve faze i zatim restartovati. Mnoge aplikacije se ne mogu napraviti da rade na ovaj na in. a uriranje slogova i njihovo osloba anje. U stvari i nije

Mrtve petlje bez resursa


Do sada smo govorili o mrtvim petljama nad resursima. Jedan proces zahtjeva resurs kojeg drugi proces dr i i mora da eka dok se taj resurs ne oslobodi. Mrtve petlje mogu da se de avaju i u drugim slu ajevima kao to su oni u koje nisu uklju eni resursi. Na primer, mo e se desiti da se dva procesa na u u mrtvoj petlji, tako to svaki eka da ovaj drugi odradi ne to. Ovo se esto de ava kod semafora. U poglavlju 2 vidjeli smo neke primjere toga. Ako se izvr avanje procesa odvija po pogre nom poretku, mo e do i do pojave mrtve petlje.

24 -

Izgladnjivanje
Problem koji je usko povezan sa mrtvom petljom je izgladnjivanje. U dinami kom sistemu stalno se de avaju zahtjevi za resursima. Potrebna je neka politika odlu ivanja o tome ko kada dobija koji resurs. Ova politika, iako naizgled razumna, mo e dovesti do toga da neki procesi nikada ne budu opslu eni iako se ne nalaze u mrtvoj petlji. Kao primer, posmatrajmo alokaciju tampa a. Zamislimo da sistem koristi neku vrstu algoritma da bi osigurao da alokacija tampa a ne dovede do mrtve petlje. Sada pretpostavimo da nekoliko procesa zahtjeva tampa istovremeno. Koji proces e ga dobiti? Jedan mogu i algoritam alokacije je da se tampa dodjeli procesu koji ima najmanji fajl koji treba od tampati (pretpostavljamo da je ova informacija dostupna). Ovaj pristup maksimizira broj zadovoljnih korisnika i ini se da je dobar. Sada razmotrimo ta se de ava kod veoma zaposlenog sistema kada jedan proces treba da tampa jedan veoma velik fajl. Svaki put kada je tampa slobodan, sistem e potra iti i izabrati proces sa najmanjim fajlom. Ako postoji stalan protok procesa sa malim fajlovima, proces sa velikim fajlom ne e nikad dobiti tampa . On e jednostavno izgladnjeti do smrti ( vje no e se odlagati, iako nije blokiran). Izgladnjivanje mo e da se izbjegne kori tenjem druga ije politike alokacije resursa: prvi-do e, prvi-uslu en. Ovim pristupom, proces koji je najdu e ekao biva slijede i uslu en. Svaki dati proces e biti u jednom trenutku najstariji i time dobiti resurs koji mu je potreban.

ISTRA IVANJA MRTVIH PETLJI


Mrtve petlje su su istra ivane i opisivane od najranijih dana operativnih sistema. Razlog tome je to je detekcija mrtve petlje jedan lijepi, mali problem teorije grafova s kojim se jedan matemati ki obdaren postdiplomac mo e uhvatiti u ko tac i vakati ga jedno 3-4 godine.

Izmi ljeni su razni algoritmi, svaki egzoti niji i manje prakti an od pro log. Kao posljedica toga, sva ova istra ivanja su izumrla i veoma je malo novih radova (Karacali et al.,2000.). Kada
-

25 -

operativni sistem eli da izvr i detekciju ili prevenciju mrtve petlje (nekoliko ih to i radi), koristi onda jedan od na ina datih u prethodnim poglavljima. Jo uvijek postoje odre ena istra ivanja na polju detekcije mrtve petlje. Me utim, ovdje se time ne emo baviti jer je (1) to izvan interesovanja ove knjige, i (2) ni jedan od njih nije ak ni pribli no primjenjiv na realne sisteme. Njihova glavna upotreba izgleda da je u tome to dr i van ulice ina e nezaposlene teoreti are grafova.

26 -

ZAKLJU AK
Mrtva petlja predstavlja potencijalan problem svakog operativnog sistema. Ona se de ava kada svakom procesu iz grupe procesa biva ekskluzivno dodeljen resurs, a pri tom svaki od procesa zahteva drugi resurs kojeg poseduje drugi proces iz grupe. Svi procesi su blokirani i ni jedan ne e vi e nikad da se pokrene.Mrtva petlja mo e da se izbegne vo enjem evidencije o tome koja stanja su sigurna a koja to nisu. Sigurno stanje je ono kod kojeg postoji sekvenca doga aja koja garantuje zavr etak procesa. Nesigurno stanje nema takvih garancija. Bankarov algoritam izbegava mrtve petlje ne odobravaju i zahtev koji bi odveo sistem u nesigurno stanje. Mrtva petlja se mo e strukturno spre iti izgradnjom sistema na taj na in da se ona nikad ne mo e pojaviti u tako dizajniranom sistemu. Na primer, dozvoljavanjem procesu da dr i samo jedan resurs istovremeno kr i se uslov cirkularnog ekanja koji je neophodan da bi se pojavila mrtva petlja. Mrtva petlja se tako e mo e sprije iti numerisanjem svih resursa i njihovim zahtjevanjem od strane procesa po striktno rastu em redosledu. Izgladnjivanje mo e da se prevazi e politikom alokacije: prvi-do e, prvi-uslu en.

27 -

Literatura
1. http://www.croportal.net/forum/tutoriali-i-trikovi/petlje-8031/ 2. http://www.link-elearning.com/lekcija-Osnovi-multitasking-a._50 3. http://search.conduit.com/Results.aspx?q=mrtve+petlje&SearchSourceOrigin=1&hl=en& SelfSearch=1&ctid=CT2269050&start=10 4. http://www.pc-press.com/arhiva/tekst.asp?broj=127&tekstID=6960 5. http://webcache.googleusercontent.com/search?q=cache:LXdF367nWXsJ:www.os.ac.me /os/materijal/Deadlocks1/Deadlocks1.doc+mrtve+petlje&cd=1&hl=en&ct=clnk 6. http://docs.google.com/viewer?a=v&q=cache:mq_zOP4m0GYJ:www.os.ac.me/os/OS7.p df+mrtve+petlje&hl=en&pid=bl&srcid=ADGEESiVZx_ECbXdVRGPAyl9IkTOGy4IMbtYLPYlg5bLzoI7YK89VHZFBcQlsvitN9eLkjJCIpiRhbFxdLc5 D-dIxXsjmSvEKnrBW--Nzw8bAOuLm3qvr727WcZswLpoKwfT6oxmau&sig=AHIEtbTehvWfR2swPNmBKYvdgZwGsF2H ng 7. http://webcache.googleusercontent.com/search?q=cache:mZXPgfWHvB8J:www.os.ac.m e/os/semi2002_03/Deadlocks.ppt+mrtve+petlje&cd=3&hl=en&ct=clnk

28 -

29 -

You might also like