You are on page 1of 14

Operan systmy

7. Uviaznutie procesov

7. Uviaznutie procesov

roces pre svoje vykonanie potrebuje prostriedky systmu - procesor, pam, perifrne zariadenia, sbory. V multiprogramovom prostred viac procesov sper o tieto prostriedky. Proces iada o prostriedok, ak ten nie je von, proces je zablokovan. Me sa sta, e stav zablokovania sa nikdy nezmen, pretoe iadan prostriedok dr in proces, ktor tie ak na uvonenie inho prostriedku. Tto situcia sa nazva uviaznutie (deadlock).

7.1 Model systmu


Systm pozostva z konenho potu prostriedkov, ktor sa maj rozdeli medzi procesyi. Prostriedky s rozdelen na niekoko typov, z ktorch kad pozostva z viacerch jednotiek. Napr. pam, CPU, sbory, V/V zariadenia (tak ako tlaiarne alebo magnetick psky) s prkladmi takchto typov prostriedkov. Systm me disponova viacermi prostriedkami danho typu, napr. dva procesory, tri tlaiarne at. Ak proces iada o prostriedok danho typu, me mu by pridelen ubovoln z danej triedy. Ak prostriedky triedy nie s identick, potom musia by rozdelen do rznych tried. Proces me iada o toko prostriedkov, koko potrebuje pre splnenie svojej lohy. Samozrejme, e proces by nemal iada o v poet prostriedkov, ako systm vlastn. Za normlnych okolnost proces pouva prostriedky systmu poda nasledovnch krokov: 1. Poiada o prostriedok. Ak sa neme poiadavke vyhovie ihne (ak napr. tento prostriedok prve pouva in proces), potom proces mus aka na uvonenie prostriedku. 2. Pouije prostriedok. 3. Uvon prostriedok. Poiadanie o prostriedok sa uskutouje pomocou systmovch volan, ktor u boli popsan. Napr. request a release pre zariadenia, open a close pre sbory, allocate a free pre pam. Mnoina procesov je v stave uviaznutia, ak kad proces z mnoiny ak na udalos, ktor me vyvola len in proces z tejto mnoiny. Tu mme na mysli hlavne udalosti poiadania o prostriedok a uvonenie prostriedku. Prostriedky mu by bu fyzick (tlaiarne, magnetick psky, pam, CPU) alebo logick (sbory, semafory, monitory). Pre ilustrciu uviaznutia uvedieme nasledovn prklad: majme tri tlaiarne a tri procesy, kad z ktorch dr jednu psku, ale pre svoje dokonenie potrebuje ete jednu. Kad proces ak na udalos uvonenie alej psky, ktor me vyvola len jeden z alch dvoch procesov. V tomto prpade procesy speria o prostriedky rovnakho typu. Uviaznutie me vznikn aj pri speren o prostriedky rznych typov. Napr. ak proces Pi m psku a proces Pj m tlaiare. Ak Pi poaduje tlaiare a Pj psku, potom nastane uviaznutie.

7.2 Charakteristika uviaznutia


Uviaznutie je neiadci stav. V tomto stave procesy nikdy nekonia a systmov prostriedky s viazan, m brzdia prcu alch procesov.

87

Operan systmy

7. Uviaznutie procesov

7.2.1 Nutn podmienky pre uviaznutie Uviaznutie me nasta ak s splnen nasledovn tyri (Coffmanove) podmienky naraz v danom ase: 1. Vzjomn vylenie. Aspo jeden prostriedok mus by pridelen vlune, to znamen, e neme by zdiean. 2. Vlastni a iada. Mus existova proces, ktor m pridelen aspo jeden prostriedok a poaduje alie prostriedky, ktor s pridelen inm procesom. 3. Pouvanie bez preempcie. Prostriedok neme by odat, t.j. proces me uvoni prostriedok jedine dobrovone, ke s nm ukon prcu. 4. Kruhov akanie. Mus existova mnoina P0 , P1 . . . Pn akajcich procesov takch, e P0 ak na prostriedok, ktor dr P1 , P1 ak na prostriedok, ktor dr P2, ......, Pn-1 ak na prostriedok, ktor dr Pn a Pn ak na prostriedok, ktor dr P0 . Pre vznik uviaznutia musia plati vetky tyri podmienky sasne. 7.2.2 Graf prideovania prostriedkov Uviaznutie sa d popsa lepie pomocou orientovanho grafu, ktor je nazvan graf prideovania prostriedkov. Tento graf pozostva z mnoiny vrcholov V a mnoiny hrn E. Mnoina vrcholov m dve podmnoiny P =P1, P2 ,...Pn a R= R1, R1,...Rn. Mnoina P pozostva zo vetkch procesov systmu a mnoina R zo vetkch typov prostriedkov systmu. Orientovan hranu z procesu Pi do prostriedku typu Ri oznaujeme Pi --->Ri a tto hrana znamen, e proces Pi iada jeden prostriedok typu Ri a momentlne ak, aby ho dostal. Orientovan hranu z prostriedku Ri do procesu Pi oznauje Ri--->Pi a tto hrana znamen, e jeden prostriedok typu Ri bol pridelen procesu Pi . Graficky znzorujeme procesy krkom a prostriedky tvorekom. Pretoe prostriedkov danho typu me by viacej ako jeden, vo vntri kadho tvoreka s bodky, ktor znzoruj poet prostriedkov. Hrana, vyjadrujca priradenie prostriedku mus ukazova na prslun bodku. Ke proces poiada o prostriedok, do grafu sa vlo hrana, ktor smeruje od procesu k prostriedku. Ak sa poiadavka d uspokoji, hrana sa hne pretransformuje na hranu od prostriedku k procesu. Ke proces uvon prostriedok, hrana sa zmae. Na obr.7.1 je ukzan graf prideovania prostriedkov, kde P = { P1, P2 ,P3 }, R ={ R1, R2, R3, R4 } a E = {P1-->R1, P2-->R3, R1-->P2, R2-->P2, R2-->P1, R3-->P3}. Poty prstupnch prostriedkov s: R1 = 1, R2 = 2, R3 = 1, R4 = 3. Procesy s v nasledovnch stavoch: P1 - vlastn jeden prostriedok typu R2 a ak na zskanie prostriedku typu R1. P2 - vlastn po jednom prostriedku typu R1 a R2 a ak na zskanie prostriedku typu R3. P3 - vlastn jeden prostriedok typu R3.

88

Operan systmy

7. Uviaznutie procesov

R1

R3

P1

P2

P3

R2

R4

Obr. 7.1 Graf prideovania prostriedkov


Pomocou grafu prideovania prostriedkov, ktor je zostaven poda uvedench pravidiel, sa d ahko ukza, e ak graf neobsahuje cyklus, uviaznutie nenastalo, v opanom prpade uviaznutie je mon. Ak kad prostriedok v systme je iba jeden, potom existencia cyklu hovor, e uviaznutie urite nastalo. Ak cyklus obsahuje typy prostriedkov, ktor s len po jednom v systme, to tie sved, e nastalo uviaznutie. V tchto prpadoch je existencia sluky nutnou a postaujcou podmienkou pre preukzanie stavu uviaznutia. Vetky procesy, ktor s v cykle, s uviaznut.
R1 R3

P1

P2

P3

R2

R4

Obr. 7.2 Graf prideovania prostriedkov s uviaznutm


Ak systm vlastn v poet prostriedkov danho typu, potom cyklus je nutnou, ale nie postaujcou podmienkou pre uviaznutie. Pre ilustrciu tohoto prpadu sa vrtime k situcii na obr.7.1. Predpokladajme teraz, e P3 poaduje jeden prostriedok typu R2. Pretoe takto prostriedok nie je von, prid sa hrana P3-->R2 (obr.7.2). V tomto okamihu v grafe existuj dva cykly: P1-->R1-->P2-->R3-->P3--> R2-->P1 a 89

Operan systmy

7. Uviaznutie procesov

P2-->R3-->P3-->R2-->P2 Procesy P1, P2 a P3 s zablokovan - uviaznut. Proces P2 ak na prostriedok R3, ktor vlastn proces P3. Proces P3 ak, e bu proces P1 alebo P2 uvonia prostriedok R2. A ete proces P1 ak, aby P2 uvonil prostriedok R1. Zoberme si al prklad grafu prideovania prostriedkov na obr.7.3. Tu tie mme cyklus. V tomto prpade ale nenastva uviaznutie, pretoe P4 po ukonen svojej innosti uvon svoj prostriedok typu R4, ktor me by potom pridelen P3 a tm sa cyklus preru.
R1 P3 P1 R2 P4 P2

Obr. 7.3Graf pride ovania prostriedkov, ktor obsahuje cyklus, ale uviaznutie nenastalo
Shrnom meme poveda, e ak v grafe prideovania prostriedkov nie je sluka, uviaznutie nenastalo. V opanom prpade uviaznutie me, ale nemus nasta.

7.3 Metdy obsluhy uviaznutia


Principilne mme tri metdy pre obsluhu uviaznutia: 1. Meme poui protokol prideovania prostriedkov, aby sme zaistili, e uviaznutie nikdy nenastane. 2. Meme dovoli systmu, aby sa dostal do stavu uviaznutia a potom zaisti jeho zotavenie. 3. Meme problm ignorova a tvri sa, e neexistuje. Vo vine OS je pouit prve toto rieenie. Aby sme zaistili, e sa uviaznutie nevyskytne, musme zaisti bu prevenciu alebo vyvarova sa problmu uviaznutia. Prevencia pred uviaznutm je mnoina metd pre zaistenie toho, e aspo jedna z podmienok pre uviaznutie nebude plati. Tieto metdy chrnia pred uviaznutm tak, e uruj pravidl, poda ktorch sa iada o prostriedky. Vyvarovanie sa uviaznutiu na druhej strane vyaduje, aby operan systm disponoval s potrebnou dodatonou informciou tkajcou sa prostriedkov, ktor proces bude poadova poas svojej existencie. S tmito dodatonmi znalosami potom meme rozhodn o kadej poiadavke - i bude uspokojen alebo proces mus aka na jej uspokojenie. Pri spracovan kadej poiadavky systm mus zobra do vahy vetky prostriedky, ktor s momentlne pridelen procesom, ako aj budce poiadavky a uvonenia prostriedkov. Ak v systme nefunguje ani mechanizmus ochrany, ani mechanizmus vyvarovania sa, uviaznutie me nasta. V kadom prostred systm mus poskytova algoritmus, ktor zist, 90

Operan systmy

7. Uviaznutie procesov

i uviaznutie nastalo a ak no, potom poskytn aj algoritmus pre zotavenie sa systmu z tohoto stavu. Ak systm neposkytuje ani jeden z u spomenutch prostriedkov, potom je mon, e nastane situcia, kedy nie je mon zisti, o sa stalo. Takto neodhalen uviaznutie me vies k poklesu vkonnosti systmu kvli stle viemu potu prostriedkov, ktor uviaznut procesy dria, a stle viemu potu uviaznutch procesov. Eventulne sa me sta, e systm sa plne zastav a bude potrebn ho retartova manulne. Aj ke tto metda nevyzer by ivotaschopn pre rieenie problmu uviaznutia, je dos asto pouvan. V mnohch systmoch sa uviaznutie vyskytuje zriedkavo (raz za rok), take toto rieenie je lacnejie ako prevencia pred uviaznutm alebo vyvarovanm sa pred uviaznutm, alebo detekcia a zotavenie sa. Taktie s prpady, kedy systm je v zmrazenom stave, aj ke uviaznutie nenastalo. Je to napr. v systmoch pre relny as, ke be dlh proces s najvyou prioritou (alebo pri nepreemptvnom plnovan) a proces vemi dlho nevracia riadenie operanmu systmu.

7.4 Prevencia pred uviaznutm


Ako sme u poznamenali, aby sa mohlo vyskytn uviaznutie, musia plati sasne vetky tyri podmienky zo 7.2.1. Zaistenm, e trvale nebude plati aspo jedna z podmienok, zaistme aj prevenciu pred uviaznutm. 7.4.1 Vzjomn vylenie Vzjomn vylenie mus plati aj pre nezdieaten prostriedky. Napr. tlaiare neme by zdiean medzi niekokmi procesmi. Na druhej strane zdieaten prostriedky nepotrebuj vylenie sasnho prstupu. Pre zdieaten prostriedky procesy neakaj. Vo veobecnosti sa d poveda, e prevencia pred uviaznutm sa ned dosiahnu zkazom vlunho prideovania prostriedkov, pretoe niektor prostriedky s svojou povahou nezdieaten. 7.4.2 Vlastni a iada Aby sme zaistili, e tto podmienka nebude nikdy plati, musme zabezpei, e kedykovek proces bude iada o prostriedok, nesmie vlastni iadny in prostriedok. Jeden z monch spsobov je, e proces poiada o vetky prostriedky naraz pred svojim zahjenm. Tento spsob sa d implementova tak, e systmov volania pre pridelenie prostriedkov bud predchdza vetky ostatn volania systmu. In spsob je tak, e proces me iada o prostriedok, len ak nevlastn iadny in. Pre znzornenie rozdielov medzi tmito dvomi spsobmi si zoberme naprklad proces, ktor kopruje dta z magnetickej psky do sboru na disku, vytriedi ich a potom tla vsledok na tlaiarni. V prvom prpade proces bude musie poiada o psku, diskov sbor a tlaiare hne na zaiatku svojej innosti. Aj ke tlaiare potrebuje a na koniec, bude ju dra poas celho svojho vykonania. V druhom prpade na zaiatku proces poiada o psku a diskov sbor. Skopruje dta na disk a uvon psku a sbor. Potom poiada o sbor a tlaiare a nakoniec uvon vetky prostriedky. Uveden spsoby maj dva zkladn nedostatky. Po prv je to mal vyuitie prostriedkov, lebo tie mu by pridelen, ale s dlho nevyuvan. Druh nedostatok je, e me nasta starvcia. Proces, ktor potrebuje asto vyuvan prostriedok, me aka nekonene dlho, ak aspo jeden z prostriedkov, ktor on potrebuje, je sstavne prideovan inm procesom.

91

Operan systmy

7. Uviaznutie procesov

7.4.3 Zkaz preempcie Tretia Coffmanova podmienka hovor, e pridelen prostriedok sa nesmie odobra. Pre poruenie tejto podmienky meme postupova takto. Ak proces, ktor vlastn nejak prostriedky poaduje alie, ktor mu nemu by pridelen okamite, potom tie, ktor vlastn, mu mu by odobrat. To znamen, e tieto prostriedky s implicitne uvonen. Odat prostriedky s pridan k prostriedkom, na ktor proces ak. Take proces sa spust znova ke zska nasp star a nov prostriedky, ktor poadoval. In alternatva je, e ke proces poiada o nejak prostriedky, najprv sa testuje, i s prstupn. Ak no, pridelia sa. Inak sa testuje, i s pridelen inm procesom, ktor tie akaj na prostriedky, ktor dria in procesy. V takomto prpade sa odober prostriedky od akajcich procesov a pridelia sa. Ak prostriedky nie s prstupn a nepatria akajcim procesom, potom proces, ktor iadal, mus poka. Pokia proces ak, niektor z jeho prostriedkov mu by odobrat v prpade, e in proces o ne poiada. Proces me pokraova len ke zska sp odobrat prostriedky a tie, o ktor iadal. 7.4.4 Kruhov akanie Cestou ako zamedzi platnos podmienky kruhovho akania, je zoradi vetky typy prostriedkov a donti procesy poadova prostriedky poda vzostupnho poradia slovania. Nech R ={ R1, R2,..., Rm } je mnoina typov prostriedkov. Priradme kadmu typu cel slo, ktor umon porovnanie dvoch prostriedkov, aby sme mohli uri ich poradie poda zavedenho slovania. Formlne zadefinujeme funkciu F: R --> N, kde N je mnoina prirodzench sel. Naprklad, ak mnoina typov prostriedkov zahruje magnetick psky, disky a tlaiarne, potom funkcia F me by zadefinovan nasledovne: F(pska) = 1, F(disk) = 5, F(tlaiare) = 12. Predpokladme, e nasledovn protokol zabezpe systm proti uviaznutiu: kad proces iada o prostriedky len vo vzostupnom porad slovania, t.j. ak proces na zaiatku poiadal o prostriedok typu Ri, potom me iada len o prostriedky typu Rj, pre ktor plat F(Rj) > F(Ri). Ak potrebuje proces viac prostriedkov toho istho typu, iada o vetky naraz. Naprklad, ak funkcia je definovan dobre, proces ktor potrebuje psku a tlaiare v tom istom ase, najskr mus iada o psku a potom o tlaiare. Alternatvne meme poadova, e kedykovek proces poiada o prostriedok typu Rj, mus uvoni vetky prostriedky Ri tak, e F(Ri) F(Rj). Ak sa dodria tieto dva protokoly, podmienka kruhovho akania bude poruen. Meme to demontrova nasledovne. Majme mnoinu procesov {P0, P1 ,....,Pn }, kde Pi ak na prostriedok Rj, ktor vlastn proces Pi+1. Pretoe proces Pi+1 vlastn prostriedok Rj a iada o prostriedok Ri+1, meme zapsa F(Ri) < F(Ri+1) pre vetky i. Tto podmienka znamen, e F(R0) < F(R1) <...< F(Rn) < F(R0.). Poda pravidla tranzitivity plat F(R0) < F(R0), o je nemon. Take tu neme by kruhov akanie. Funkcia F by mala by definovan poda benho poradia vyuitia prostriedkov. Napr. pretoe sa pska pouva obyajne pred tlaiarou, bolo by logick definova F(pska) < F(tlaiare).

7.5 Vyvarovanie sa uviaznutiu


Algoritmy prevencie, ktor sme prediskutovali v predchdzajcom odstavci, chrnia pred uviaznutm tak, e predpisuj pravidl, poda ktorch sa iada o prostriedky. Tieto pravidl zaisuj, e nie je splnen aspo jedna z podmienok, nutnch pre uviaznutie a tm je uviaznutie 92

Operan systmy

7. Uviaznutie procesov

principilne nemon. Uveden metdy ale maj vplyv na efektvnos vyuitia prostriedkov a zniuj priechodnos systmu. Alternatvnou metdou pre vyhnutie sa uviaznutiu je vyadova dodaton informciu o tom, ako bud prostriedky poadovan. Napr. ak je v systme jedna pska a jedna tlaiare, potom meme poveda, e proces P bude poadova najprv psku, potom tlaiare a potom tieto prostriedky uvon. Proces Q, zasa bude poadova najskr tlaiare a potom psku. Na zklade informcie o tom, ak prostriedky a v akom porad bud procesy potrebova, je mon sa rozhodn, i dan konkrtna poiadavka bude uspokojen alebo nie. Pri kadej poiadavke sa mus rozhodn o jej uspokojenie na zklade prostriedkov ktor s k dispozci, prostriedkov, ktor procesy momentlne vlastnia, a tch prostriedkov, ktor procesy bud poadova a uvoova. Algoritmy, ktor zaisuj vyhnutie sa uviaznutiu sa lia v tom, koko a ak informciu potrebuj. Najjednoduch model vyaduje od kadho procesu, aby uviedol maximlny poet potrebnch prostriedkov z kadho typu. Tieto algoritmy potom dynamicky skmaj stav prideovania prostriedkov, aby zaistili, e nikdy nenastane kruhov akanie. Stav prideovania je dan potom pridelench prostriedkov, potom vonch prostriedkov a maximlnym potom poadovanch prostriedkov. 7.5.1 Stav bezpen Stav pridelenia prostriedkov je bezpen, ak systm me prideli kadmu procesu vetky nm poadovan prostriedky a pritom sa vyhne stavu uviaznutia. Formlne meme poveda, e systm je v bezpenom stave, ke existuje bezpen sekvencia. Sekvencia procesov < P1 , P2 , ..., Pn > je bezpen sekvencia pre momentlne pridelenie, ak pre kad proces Pi poiadavky, ktor Pi m, mu by uspokojen momentlne prstupnmi prostriedkami plus prostriedkami, ktor vlastnia vetky procesy Pk , pre k < i. V tejto situci, ak prostriedky, ktor Pi potrebuje, nie s momentlne prstupn, potom Pi mus poka, km procesy Pk ich uvonia. Potom ich Pi zska a me dokoni svoje vykonanie. Ke Pi skon, Pi+1 me by dokonen at. Ak takto sekvencia procesov neexistuje, stav je nebezpen. Stav nebezpen nie je stav uviaznutia, ale stav uviaznutia je stav nebezpen. Nie vetky nebezpen stavy ved do stavu uviaznutia - obr.7.4. V bezpenom stave sa operan systm me vyhn nebezpenm stavom a stavom uviaznutia. V nebezpenom stave systm neme zaisti, aby procesy neiadali o prostriedky a uviaznutie me nasta. Pre ilustrciu rozoberieme prpad, kedy systm m 12 magnetickch psok a 3 procesy: P0 , P1 a P2. Proces P0 poaduje 10 psok, proces P1 poaduje 4 a proces P1 - 9 magnetickch psok. Predpokladajme, e v ase t0 proces P0 vlastn 5 jednotiek, proces P1 vlastn 2 a proces P2 - 2 jednotky, 3 jednotky s von. Maximlne potreby 10 4 9 Momentlne potreby 5 2 2

P0 P1 P2

V ase t0 je systm v bezpenom stave. Postupnos P1 , P0 , P2 vyhovuje podmienkam bezpenosti, pretoe proces P1 me dosta vetky poadovan prostriedky a po ukonen ich vrti a systm potom bude ma 5 prstupnch psok. Potom proces P0 me dosta vetky prostriedky, ktor poaduje, ukon sa a nakoniec bud uspokojen aj poiadavky procesu P2. Stav systmu sa me vyvin aj tak, e prejde do nebezpenho stavu. Naprklad, ak v ase t1 proces P2 dostane o 1 psku naviac, stav systmu sa stane nebezpen. V tomto 93

Operan systmy

7. Uviaznutie procesov

prpade len proces P1 dostane vetky poadovan prostriedky a po jeho ukonen systm bude ma len 4 prstupn psky. Pretoe proces P0 m pridelench 5 psok, ale poaduje 10, bude musie aka. Obdobne proces P2 poaduje alch 6 psok a tie mus aka. Tu u nastalo uviaznutie. Chyba sa stala pri prideovan prostriedkov procesu P2. Keby sme P2 nechali poka, km alie dva procesy skonia a uvonia prostriedky, vyhli by sme sa uviaznutiu.

stav nebezpen uviaznutie

stav bezpen

Obr. 7.4 Stavov priestory stavu bezpenho, nebezpenho a stavu uviaznutia

Na zklade koncepcie bezpenho stavu meme definova algoritmus, ktor zaist, e systm sa nikdy nedostane do uviaznutia. Na zaiatku systm je v bezpenom stave. Vdy, ke niektor proces poiada o prostriedok, systm mus rozhodn, i mu ten prostriedok pridel alebo ho nech aka. Poiadavke sa vyhovie len vtedy, ak po pridelen prostriedku nevznikne nebezpen stav. Pri prideovan prostriedkov poda tejto schmy sa me sta, e proces bude musie aka, aj ke prostriedok je prstupn, o znamen, e efektvnos vyuitia prostriedkov je niia ako v opanom prpade. 7.5.2 Algoritmus bankra Algoritmus bankra dostal toto meno, pretoe sa d poui v bankovnctve, kde banka nesmie nikdy poia cel svoju hotovos, pretoe to me vies k stavu, kedy nebude mc uspokoji poiadavky svojich klientov. Kad nov proces pri vstupe do systmu mus deklarova svoje poiadavky pre kad typ prostriedkov. Tento poet samozrejme nesmie prekraova celkov poet prostriedkov systmu. Systm zist, i uspokojenie poiadaviek procesu ho nedovedie do nebezpenho stavu. Ak tomu tak nie je, proces dostane, o poaduje, inak mus aka, km in procesy neuvonia im pridelen prostriedky. Algoritmus bankra pouva nasledovn dtov truktry: n je poet procesov, m je poet typov prostriedkov v systme, prstupn: vektor s dkou m, ktor obsahuje poty prstupnch prostriedkov z kadho typu. Ak prstupn[j]= k, to znamen, e z prostriedkov typu Rj je k dispozcii k jednotiek. max: matica n x m definuje maximlne poiadavky kadho procesu. Ak max[i,j]= k, potom to znamen, e proces Pi me poadova maximlne k jednotiek z prostriedkov typu Rj. 94

Operan systmy

7. Uviaznutie procesov

pridelen: matica n x m definuje poet prostriedkov kadho typu, pridelench momentlne procesu Pi . Ak pridelen[i,j]= k, potom to znamen, e proces Pi m momentlne pridelench k jednotiek prostriedku typu Rj. zostva: matica n x m , ktor oznauje prostriedky, ktor ete musia by pridelen procesu. Ak zostva[i,j]= k, potom to znamen, e proces Pi potrebuje ete k prostriedkov typu Rj, aby mohol svoju innos dokoni. Vimnite si, e zostva[i,j]= max[i,j]- pridelen[i,j]. Tieto dtov truktry mu meni v ase svoje rozmery a hodnoty. Aby sme zjednoduili prezentciu algoritmu bankra, zavedieme niekoko pravidiel zpisu. Nech X a Y s vektory dky n. Hovorme, e XY, vtedy a len vtedy ak X[i] Y[i] pre vetky i = 1, 2, ...n. Napr. ak X = (1, 7, 3, 2) a Y = (0, 3, 2, 1), potom Y X. Y < X ak Y X a YX. Riadky matc pridelen a zostva meme bra ako vektory a budeme ich oznaova prideleni a zostvai . Vektor prideleni pecifikuje vetky prostriedky pridelen procesu Pi a vektor zostvai pecifikuje vetky prostriedky, ktor proces Pi ete potrebuje dosta do svojho ukonenia. 7.5.2.1 Algoritmus pre urenie stavu systmu Kroky algoritmu pre urenie stavu systmu s nasledovn: 1. Nech pracovn a dokonen s vektory s dkou m resp n. Poiaton hodnoty s: pracovn:= prstupn a dokonen [i]:= false pre i =1, 2, ..., n. 2. Njdeme i tak, e dokonen [i] = false a zostva[i] pracovn. Ak tak i nie je, ideme na krok 4. 3. Priradme pracovn := pracovn + prideleni dokonen [i] :=true Ideme na krok 2. 4. Ak dokonen [i] = true pre vetky i, potom systm je v bezpenom stave! Tento algoritmus vyaduje m x n2 operci pre njdenie odpovede o stave systmu. 7.5.2.2 Algoritmus pre vyiadanie prostriedku Nech poiadavkai je vektor poiadaviek procesu Pi . Ak poiadavkai[j]= k, potom proces Pi poaduje k jednotiek prostriedku typu Rj . Ke proces poiada o prostriedky, podnikn sa nasledujce kroky: 1. Ak poiadavkai zostva[i] , ideme na krok 2. In vznik chybov stav, pretoe proces prekroil svoje maximlne poiadavky. 2. Ak poiadavkai prstupni , ideme na krok 3. In Pi mus aka, pretoe prostriedky nie s prstupn. 3. Predstierame, e systm pridelil poadovan prostriedky procesu Pi tak, e modifikujeme stav takto: prstupn := prstupn - poiadavka i pridelen[i] := pridelen[i] + poiadavka i zostva[i] := zostva[i] - poiadavka i 95

Operan systmy

7. Uviaznutie procesov

Ak vsledn stav je bezpen, transakcia sa dokon a proces Pi dostane poadovan prostriedky, in proces mus aka a obnov sa pvodn stav. 7.5.2.3 Prklad Mme systm s 5-timi procesmi a tromi prostriedkami typu A, B, C. Prostriedok typu A m 10 jednotiek, prostriedok typu B - 5 jednotiek a typ C m 7 jednotiek. V ase t0 stav systmu je nasledovn: p rid e le n B 1 0 0 1 0 m ax B 5 2 0 2 3 p rs tup n B C 3 2

P0 P1 P2 P3 P4

A 0 2 3 2 0

C 0 0 2 1 2

A 7 3 9 2 4

C 3 2 2 2 3

A 3

Obsah matice zostva je definovan ako max - pridelen a je: procesy P0 P1 P2 P3 P4 A 7 1 6 0 4 zos tav a B 4 2 0 1 3 C 3 2 0 1 1

Systm je v bezpenom stave, pretoe postupnos P1, P3, P4, P2, P0 vyhovuje kritrim bezpenosti. Predpokladajme alej, e proces P1 poaduje ete jednu jednotku z prostriedkov typu A a dve jednotky z prostriedkov typu C, take poiadavka1 = (1, 0, 2). Aby sme rozhodli, i meme poiadavke vyhovie, najskr skontrolujeme i poiadavka1 prstupn (t.j. (1, 0, 2) (3, 3, 2)), o je splnen. Predpokladme alej, e sme vyhoveli poiadavke a systm prichdza do tohto stavu: A 0 3 3 2 0 p rid e le n B C 1 0 0 2 0 2 1 1 0 2 A 7 0 6 0 4 zos t av a B 4 2 0 1 3 C 3 0 0 1 1 A 2 p rs tup n B C 3 0

P0 P1 P2 P3 P4

96

Operan systmy

7. Uviaznutie procesov

Teraz musme uri, i tento nov stav je bezpen. Za tmto elom vykonme algoritmus pre urenie stavu systmu, priom zistme, e postupnos P1, P3, P4, P0, P2 vyhovuje podmienkam bezpenosti a pridelme poadovan prostriedky procesu P1.

7.6 Detekcia uviaznutia


Ak do operanho systmu nie je zahrnut algoritmus na prevenciu alebo algoritmus vyhnutia sa uviaznutia, potom uviaznutie me nasta. V takom prpade systm mus poskytn: algoritmus, ktor preskma stav systmu a ur, i nastalo uviaznutie, algoritmus pre zotavenie sa z uviaznutia. alej rozoberieme prpad, kedy systm vlastn len jednu jednotku z kadho typu prostriedkov a prpad, kedy tchto jednotiek je viacej. 7.6.1 Jedna jednotka z kadho typu Ak vetky typy prostriedkov maj iba po jednej jednotke, meme poui na detekciu uviaznutia variant grafu prideovania prostriedkov, ktor sa nazva akac graf. Takto graf zskame z grafu prideovania prostriedkov vypustenm uzlov, ktor prezentuj typ prostriedku a spojenm prslunch hrn. Hrana z Pi do Pj v akacom grafe vyjadruje to, e proces Pi ak na proces Pj , aby uvonil prostriedok, ktor Pi potrebuje. Hrana Pi -->Pj existuje v akacom grafe vtedy a len vtedy, ke zodpovedajci graf prideovania prostriedkov obsahuje dve hrany Pi -->Rq a Rq -->Pj pre niektor prostriedok. Na obr. 7.5 je ukzan graf prideovania prostriedkov a zodpovedajci akac graf. Ako v predchdzajcich prpadoch, uviaznutie existuje vtedy a len vtedy, ak v grafe je cyklus. Pre odhalenie uviaznutia systm mus udriava akac graf a periodicky vyvolva algoritmus pre hadanie cyklu v om. Algoritmus pre odhalenie cyklu v grafe vyaduje rdovo n2 operci, kde n je poet uzlov v grafe.
P5

R1

R3

R4

P5

P1

P2

P3

P1

P2

P3

P4 R2 R5

P4

(a) Obr. 7.5 a) Graf prideovania prostriedkov

(b) b) akac graf

97

Operan systmy

7. Uviaznutie procesov

7.6.2 Niekoko jednotiek z kadho typu Systm, ktor vlastn niekoko jednotiek z kadho typu prostriedkov neme poui akac graf. V takomto prpade sa pouva algoritmus popsan alej. Algoritmus pouva niekoko dtovch truktr, ktor sa menia v ase a sa podobaj tm, ktor vyuva algoritmus bankra. prstupn: vektor s dkou m, ktor oznauje poet prstupnch prostriedkov z kadho typu. pridelen: matica nxm, ktor definuje poet prostriedkov z kadho typu, ktor s pridelen kadmu procesu. zostva: matica nxm, ktor definuje poet prostriedkov z kadho typu, ktor ete poaduje kad proces. Aj tu, podobne ako v algoritme bankra, budeme riadky matice pridelen a zostva povaova za vektory a budeme ich oznaova pridelen[i] a zostva[i]. Algoritmus detekcie, ktor tu popisujeme, jednoducho skma kad mon postupnos prideovania pre procesy, ktor ete maj by dokonen. 1. Nech pracovn a pridelen s vektory s dkou m resp n. Inicializujeme pracovn := prstupn. Pre i = 1, 2, ...., n plat dokonen = false, ak prideleni 0, in sa dokonen = true. 2. Njdeme index i pre ktor plat: dokonen = false poadovan[i] pracovn Ak tak index neexistuje, ideme na krok 4. 3. pracovn := pracovn + pridelen[i] dokonen[i]:= true Ideme na krok 2. 4. Ak dokonen[i] = false pre niektor i, 1 i n, potom systm je v stave uviaznutia. Navye, ak dokonen[i] = false, potom prve proces P i je uviaznut. Tento algoritmus vyaduje rdovo mxn2 operci pre odhalenie stavu uviaznutia. Pre ilustrciu pouitia tohoto algoritmu ukeme systm s 5-timi procesmi a tromi typmi prostriedkov. Prostriedok typu A m 7 jednotiek, prostriedok typu B m 2 jednotky, prostriedok typu C - 6 jednotiek. V ase t0 je stav systmu nasledovn: p rid e le n A B C 0 1 0 2 0 0 3 0 3 2 1 1 0 0 2 p oad ov an A B C 0 0 0 2 0 2 0 0 0 1 0 0 0 0 2 p rs tup n A B C 0 0 0

P0 P1 P2 P3 P4

Poadujeme, aby bol systm v bezpenom stave. Skutone, ak vykonme algoritmus zstme, e sekvencia procesov P0, P2, P3, P1, P4 kon tak, e dokonen[i] =true pre vetky i.

98

Operan systmy

7. Uviaznutie procesov

alej predpokladme, e proces P2 poiada dodatone o jednu jednotku typu C. Matica pridelen sa zmen takto: A 0 2 0 1 0 p rid e le n B C 0 0 0 2 0 1 0 0 0 2

Zistme, e systm je v stave uviaznutia. Aj ke prostriedky procesu P0 sa vrtia k prstupnm prostriedkom, ich poet nie je dostaton pre uspokojenie potrieb ostatnch procesov. Take procesy P1, P2, P3 a P4 s v stave uviaznutia. Pri pouit algoritmu pre detekciu uviaznutia je potrebn zodpoveda otzku, ako asto sa vyskytuje uviaznutie. Ak sa uviaznutie vyskytuje asto, algoritmus by sa mal vyvolva astejie. Vyvolanie algoritmu pri kadej poiadavke prostriedku by viedlo k vekm reijnm stratm asu procesora. Menej stratov je variant vyvolania algoritmu napr. raz za hodinu, alebo vdy, ke efektvnos vyuitia procesora klesne pod 40%. Ak sa detekn algoritmus vyvolva v ubovonch asovch intervaloch, v grafe prideovania prostriedkov bude vea cyklov a nebude mon zisti, ktor z procesov zaprinil uviaznutie.

7.7 Zotavenie sa z uviaznutia


Ke nastane uviaznutie, je mon postupova niekokmi spsobmi. Jednou z monost je upovedomi opertora, e tento stav nastal a on zaist obsluhu. Druhou monosou je, e systm sa sm automaticky dostane z uviaznutia. Pre zruenie uviaznutia meme zrui jeden alebo viac procesov, aby sme preruili kruhov akanie procesov, alebo druhou monosou je, e odoberieme jeden alebo viac prostriedkov procesom, ktor s v stave uviaznutia. 7.7.1 Ukonenie procesu Pre zruenie stavu uviaznutia meme postupova dvomi spsobmi: ukonme vetky procesy, ktor s v stave uviaznutia - tto metda je radiklna, ale vedie k vekm stratm, pretoe je mon, e niektor procesy beali dlh as a ich iaston vsledky bud straten. V takomto prpade sa tieto procesy bud musie neskr spusti znova od zaiatku. ukonujeme procesy po jednom, km sa nevyli cyklus. Tto metda vedie k vekm reijnm stratm asu procesora, pretoe vdy, ke sa ukon proces, sa mus vyvola algoritmus pre detekciu uviaznutia, ktor zist, i systm je stle v tomto stave. Ukonenie procesu nemus by vdy jednoduch. Proces me napr. prve pracova so sborom a po jeho ukonen sbor zostane v nekonzistentnom tvare. Tie po ukonen procesu, ktor prve tla, systm mus resetova tlaiare. Vber procesu, ktor sa m ukoni, je obyajne dos zloit. Do vahy sa berie nielen cena optovnho spustenia procesu, ale aj dodaton kritri, ako s: priorita procesu, dka predchdzajceho vpotu, poet a typ prostriedkov ktor proces vlastn, koko prostriedkov ete proces bude potrebova do svojho ukonenia, i proces je dvkov alebo interaktvny a in. Poda toho, ktor z tchto kritri sa zoberie ako primrne, daj sa stanovi rzne taktiky pre ukonenie uviaznutch procesov.

99

Operan systmy

7. Uviaznutie procesov

7.7.2 Odatie prostriedku Ke sa pre zotavenie sa z uviaznutia pouije metda odobratia prostriedku, musia sa zobra do vahy tieto fakty: vber obete, t.j. procesu ktormu sa odoberie prostriedok. Aj v tomto prpade musme zobra do vahy cenu. Faktory, ktor tto cenu uruj s: poet prostriedkov, ktor proces vlastn, a as, ktor proces spotreboval do okamihu uviaznutia. nvrat sp (rollback) - ke procesu zoberieme nasilu prostriedok, musme mu umoni pokraova z nejakho znmeho bezpenho stavu. To znamen, e takto stavy by sa mali poas behu procesu zaznamenva, o nie je vdy mon a vhodn. Najjednoduchie rieenie je zrui proces a spusti ho znova. pri odoberan prostriedkov sa me sta, e odoberieme prostriedok stle tomu istmu procesu, m spsobme jeho starvciu. Aby takto situcia nenastala, je potrebn stanovi presn poet odobrat prostriedkov jednmu procesu.

7.8 Kombinovan prstup


Vskumnci sa zhodli na tom, e iadny z uvedench spsobov oetrenia stavu uviaznutia nie je dostaton pre vyrieenie vetkch problmov, ktor sa vyskytuj pri prideovan prostriedkov v operanch systmoch. Jedno prijaten rieenie je kombinova vetky tri prstupy - prevenciu, vyhnutie sa a detekciu. Toto rieenie je zaloen na rozdelen prostriedkov na triedy a aplikciu najvhodnejieho spsobu obsluhy uviaznutia na kad triedu. Pre ilustrciu tohoto prstupu uvedieme prklad systmu, ktor m tyri triedy prostriedkov: intern prostriedky - prostriedky, ktor vyuva systm, napr. riadiaci blok procesu. Prevenciu meme docieli pomocou hierarchickho zoradenia prostriedkov. operan pam - prevenciu meme docieli pomocou preempcie, pretoe loha vdy me by preruen, odloen na disk a spusten neskr. prostriedky, ktor sa prideuj lohe, ako napr. magnetick pska alebo sbor. Tu meme poui taktiku vyhnutia sa uviaznutiu, pretoe informciu o potrebnch prostriedkoch meme erpa z riadiacich ttkov lohy. swapovac priestor - priestor na zlonej pamti (disku), ktor loha vyuva pri vmene. Tu sa vyuva predben prideovanie, pretoe maximlne nroky lohy s obyajne znme.

100

You might also like