Professional Documents
Culture Documents
Operačné Systémy 07.uviaznutie Procesov
Operačné Systémy 07.uviaznutie Procesov
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).
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
P1
P2
P3
R2
R4
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.
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.
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).
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 bezpen
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.
R1
R3
R4
P5
P1
P2
P3
P1
P2
P3
P4 R2 R5
P4
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.
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.
100