Documente Academic
Documente Profesional
Documente Cultură
Blocaje
• Conceptul de blocaj
• Ignorarea blocajelor sau algoritmul struțului
• Detectarea și rezolvarea blocajelor
• Evitarea blocajelor
• Prevenirea blocajelor
1
Resurse(1)
• Exemple de resurse
– imprimante
– plottere
– Cd-recorder
• Procesele necesită acces la resurse într-o ordine rezonabilă
• Presupunând că un proces deține resursa A și cere resursa B
– În același timp un alt proces deține resursa B și cere resursa A
– Ambele procese sunt blocate
2
Resurse(2)
3
Resurse (3)
4
Conceptul de blocaj
• Definiția formală :
Un set de procese este blocat dacă fiecare proces din setul
respectiv așteaptă un eveniment care poate fi cauzat doar de un alt
proces din acest set.
• De obicei evenimentul face referire la eliberarea unei
resurse.
• Nici unul din procese nu poate:
– Rula
– Elibera resurse
– Poate trece în starea awake
5
Condițiile de apariție a unui blocaj
1. De excluziune mutuală
• Fiecare resursă este fie ocupată de un proces fie liberă.
2. De deținere-așteptare a unei resurse
• Un proces ce deține resurse poate solicita resurse noi.
3. Nonpreemptivității
• Resursele ocupate nu pot fi retrase forțat unui proces.
4. De așteptare circulară
• Lanțul circular de așteptare este format din cel puțin două
procese.
• Fiecare resursă solicitată este deținută de următorul proces
din lanțul circular.
6
Modelarea blocajelor(1)
• Modelarea blocajelor utilizând grafuri orientate
7
Modelarea blocajelor(2)
8
Modelarea blocajelor(3)
A B C
11
Detecția și rezolvarea blocajelor
12
Rezolvarea blocajelor(1)
• Rezolvare prin preempțiune
– Eliberarea unei resurse alocate unui alt proces
– Metodă dependentă de natura resursei
• Rezolvare prin derulare înapoi(rollback)
– Marcarea punctelor de execuție a unui proces
– Salvarea stării unui proces și utilizarea ei
– Restartarea procesului din punctul de execuție
marcat dacă se identifică blocaj
13
Rezolvarea blocajelor(2)
14
Evitarea blocajelor
Traiectoria resurselor
16
Stări sigure și nesigure(2)
17
Algoritmul bancherului pentru o singură resursă
Precizați care din cele trei stări este nesigură, știind că sunt disponibile 10
unități.
18
Algoritmul bancherului pentru resurse multiple
19
Prevenirea blocajelor
Eliminăm condiția de excluziune mutuală
20
Prevenirea blocajelor
Eliminăm condiția de deținere-așteptare
21
Prevenirea blocajelor
Eliminăm condiția de nonpreempțiune
22
Prevenirea blocajelor
Eliminăm condiția de așteptare circulară
(a) (b)
23
Recapitulare prevenirea blocajelor
Condiție Abordare
24
Alte tipuri de blocaje
Two-phase locking
• Faza 1
– Procesul rezervă înregistrările de care are nevoie una câte
una
– Dacă cel puțin una din înregistrări este deja rezervată își reia
execuția
• Dacă faza 1 s-a încheiat cu succes procesul va:
– Realiza actualizări
– Elibera înregistrările
• Este similară metodei în care toate resursele sunt alocate
înainte de execuția propriu-zisă a procesului
• Algoritmul funcționează dacă programatorul este foarte atent
ca un proces care a fost oprit din execuția primei faze să poată
fi restartat.
25
Comunication deadlocks
26
Livelock
• 2 procese A și B accesează 2 resurse R1 și R2 în
ordinea de mai jos:
void A(void){ void B(void){
enter_region(&R1); enter_region(&R2);
enter_region(&R2); enter_region(&R1);
use_both_resources(); use_both_resources();
leave_region(&R2); leave_region(&R1);
leave_region(&R1); leave_region(&R2);
} }
28
•
De știut...
Definiți blocajul.
• Ce este o resursă preemptibilă?
• Ce este o resursă nonpreemptibilă?
• Care sunt condițiile de apariție a unui blocaj?
• Cum se pot modela blocajele?
• Caracterizați algoritmul struțului.
• Cum se realizează detecția și rezolvarea blocajelor?
• Cum se evită blocajele?
• Caracterizați starea sigură și nesigură.
• Caracterizați algoritmul bancherului pentru o singură resursă.
• Caracterizați algoritmul bancherului pentru resurse multiple.
• Cum se previn blocajele?
• Explicați și dați exemplu de two-phase blocking.
• Explicați și dați exemplu de comunication deadlock.
• Ce reprezintă un livelock? Exemplificați.
• Exemplificați noțiunea de starvation.
• Explicați diferențele dintre blocaj, livelock și starvation. 29
Bibliografie
• A. Silberschatz, P. Galvin, Operating
System Concepts, John Wiley and Sons
Inc., 2005, pag 90-108, 245-275.
• A. Tanembaum, Modern Operating
Systems, Prentice Hall, 2007, pag 433-466.
• Gh. Dodescu, Sisteme de operare, Ed.
Economică, 2003, pag 208-215.
30