Professional Documents
Culture Documents
Застоји
Застоји
Sistemski model
Karakterizacija zastoja
Primer
semafori A i B, inicijalizovani na 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
Deadlocks Slide 2 of 41
Problem prelaska preko mosta
Deadlocks Slide 3 of 41
Sistemski model
Deadlocks Slide 4 of 41
Karakterizacija zastoja
Zastoj nastupa ako su istovremeno ispunjena 4 uslova .
1. Mutual exclusion (Međusobno isključenje): samo jedan proces u
jednom trenutku može koristiti resurs.
Deadlocks Slide 5 of 41
Graf dodeljenih resursa
strelica zahteva: P1 Rj
strelica alokacije: Rj Pi
Deadlocks Slide 6 of 41
Graf dodeljenih resursa
Proces
Resurs sa 4 instance
Pi zahteva instancu Rj
Pi
Rj
Pi drži instancu Rj
Pi
Rj
Deadlocks Slide 7 of 41
Graf dodeljenih resursa
Deadlocks Slide 8 of 41
Graf dodeljenih resursa sa zastojem
Deadlocks Slide 9 of 41
Graf dodeljenih resursa – kružni tok bez zastoja
Deadlocks Slide 10 of 41
Osnovne činjenice
Deadlocks Slide 11 of 41
Metodi upravljanja zastojem
1. Obezbeđuju da sistem nikada ne uđe u stanje zastoja.
Ostrich algorithm
Deadlocks Slide 12 of 41
Prevencija zastoja
Deadlocks Slide 13 of 41
Prevencija zastoja
Nema pretpražnjenja (no preemption):
Ako proces drži neki resurs,
a traži drugi resurs koga ne može trenutno da dobije,
onda proces treba da otpusti sve dosadašnje zauzete
resurse
Oslobodjeni resursi se ubacuju na listu resursa za koje proces
čeka
Proces će se restartovati samo kada bude mogao da povrati
stare resurse, kao i da dobije nove koji su mu trebali
Kružno čekanje:
uvede se poredak označavanja svih resursa
natera se da svaki proces zahteva resurse
u strogo rastućem redu
Deadlocks Slide 14 of 41
Izbegavanje zastoja (Deadlock avoidance )
Deadlocks Slide 15 of 41
Bezbedno stanje (Safe State)
Kada proces traži neki resurs, sistem mora da proceni da li će dodela tog
resursa ostaviti sistem u bezbednom stanju (safe state)
Sekvenca <P1, P2, …, Pn> je bezbedna ako za svaki proces Pi, resursi
koje Pi može još tražiti, mogu zadovoljiti iz:
trenutno raspoloživih resursa + resursi koji pripadaju svim Pj, sa j<I.
(svi procesi startovani pre njega)
Ako resursi koje traži proces Pi nisu trenutno raspoloživi, tada će Pi da
čeka dok prethodni procesi Pj ne završe svoje poslove
Kada Pj završi, Pi može dobiti traženi resurs, izvršiti, vratiti deljeni resurs i
završiti svoj posao
Deadlocks Slide 16 of 41
Činjenično stanje
Izbegavanje
osigurava da sistem
nikad ne uđe u ne-bezbedno stanje
Deadlocks Slide 17 of 41
Bezbedno, Nebezbedno , Zastoj stanje
Deadlocks Slide 18 of 41
Resource-Allocation Graph Algorithm
Deadlocks Slide 19 of 41
Resource-Allocation Graph For Deadlock Avoidance
Deadlocks Slide 20 of 41
Unsafe State In Resource-Allocation Graph
ako P2 dobije
resurs
Deadlocks Slide 21 of 41
Bankarski algoritam
Više instanci
Deadlocks Slide 22 of 41
Strukture podataka za bankarski algoritam
Deadlocks Slide 24 of 41
Algoritam za zahtevanje resursa
Requesti = vektor trenutnih zahteva za proces Pi.
Ako je Requesti [j] = k tada proces Pi traži k instanci resoursa Rj.
1. Ako je Requesti Needi idi na korak 2. Ukoliko ovo nije ispunjeno postavlja
se greška , zato što proces traži više od onoga što je specificirao kao
maksimalan zahtev .
5 procesa P0 do P4;
3 resoursa:
A (10 instanci), B (5instanci), i C (7 instanci)
Stanje sistema u trenutku T0:
Allocation Max Available
ABC ABC ABC
P0 010 753 332
P1 200 322
P2 302 902
P3 211 222
P4 002 433
Deadlocks Slide 26 of 41
Primer
Deadlocks Slide 27 of 41
Primer gde P1 zahteva (1,0,2)
Deadlocks Slide 28 of 41
Detekcija zastoja (Deadlock Detection)
Algoritam za oporavak
Deadlocks Slide 29 of 41
Detekcija kad resursi imaju samo jednu
instancu
Pruža wait-for graf:
Čvorovi su samo procesi
Pi Pj ako Pi čeka na Pj.
Deadlocks Slide 30 of 41
Graf alokacije resursa i Wait-for graf
Deadlocks Slide 31 of 41
Detekcija kad resursi imaju više instanci
Deadlocks Slide 32 of 41
Algoritam za detekciju
Deadlocks Slide 33 of 41
Algoritam za detekciju
3. Work = Work + Allocationi
Finish[i] = true
idi na korak 2
Deadlocks Slide 34 of 41
Primer algoritma za detekciju
Sekvenca <P0, P2, P3, P1, P4> koja bi dovela da bude rezultat Finish[i] =
true za sve procese i
Deadlocks Slide 35 of 41
Primer 2
Deadlocks Slide 36 of 41
Korišćenje algoritma za detekciju
Deadlocks Slide 37 of 41
Oporavak od zastoja: Prekidanje procesa
Deadlocks Slide 38 of 41
Oporavak od zastoja: Oduzimanje resursa
Biranje žrtve:
najmanji gubitak
Zakucavanje (Starvation):
neki proces možda uvek bude biran kao žrtva,
zbog toga se neće dugo izvršiti
Deadlocks Slide 39 of 41
Kombinovan pristup za uklanjanje zastoja
Kombinacija tri osnovna pristupa:
prevencija
izbegavanje
detekcija
dopušta korišćenje najpovoljnijeg pristupa za svaki resurs u sistemu
Deadlocks Slide 40 of 41
Zastoj u saobraćaju
Deadlocks Slide 41 of 41