Documente Academic
Documente Profesional
Documente Cultură
Blocaje
Conceptul de blocaj Ignorarea blocajelor sau algoritmul struului Detectarea i rezolvarea blocajelor Evitarea blocajelor Prevenirea blocajelor
Resurse(1)
Exemple de resurse
imprimante plottere Cd-recorder
Procesele necesit acces la resurse ntr-o ordine rezonabil Presupunnd c un proces deine resursa A i cere resursa B
n acelai timp un alt proces deine resursa B i cere resursa A Ambele procese sunt blocate
Resurse(2)
Blocajele apar cnd
Procesele dein acces exclusiv asupra unui dispozitiv Ne referim la dispozitive cu termenul general de resurs
Resursele pot fi
Preemptibile Nonpreemptibile
Resurse (3)
Secvena de evenimente necesar utilizrii unei resurse este urmtoarea:
Solicit resursa Utilizez resursa Eliberez resursa
Conceptul de blocaj
Definiia formal :
Un set de procese este blocat dac fiecare proces din setul respectiv ateapt 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
3. Nonpreemptivitii
4. De ateptare circular
Lanul circular de ateptare este format din cel puin dou procese. Fiecare resurs solicitat este deinut de urmtorul proces din lanul circular.
6
Modelarea blocajelor(1)
Modelarea blocajelor utiliznd grafuri orientate
Resursa R este alocat procesului A (vezi orientarea sgeii) Procesul B solicit/ateapt resursa S (vezi orientarea sgeii) Procesele D i C sunt blocate la solicitarea resurselor T i U
7
Modelarea blocajelor(2)
Strategii pentru rezolvarea blocajelor:
1. Ignorarea problemei blocajelor 2. Detectarea i rezolvarea blocajelor 3. Evitarea dinamic blocajelor
Alocarea atent a resurselor Negarea uneia din cele patru condiii de apariie a blocajelor
4. Prevenirea blocajelor
Modelarea blocajelor(3)
A B C
Modelarea blocajelor(4)
(o)
(p)
(q)
10
Monitorizeaz solicitrile i eliberrile de resurse. Poate fi identificat un ciclu care denot apariia unui blocaj
12
Rezolvarea blocajelor(1)
Rezolvare prin preempiune
Eliberarea unei resurse alocate unui alt proces Metod dependent de natura resursei
13
Rezolvarea blocajelor(2)
Rezolvarea blocajelor prin oprirea proceselor
Cea mai simpl i eficient metod Oprirea unui proces din ciclul identificat dar i a unui proces dinafara ciclului Este indicat oprirea unor procese a cror execuie poate fi reluat de la nceput ( de exemplu NU se oprete un proces de actualizare a unei baze de date)
14
(a)
(b)
(c)
(d)
(e)
(a)
(b)
(c)
(d)
(a)
(b)
(c)
Precizai care din cele trei stri este nesigur, tiind c sunt disponibile 10 uniti.
18
19
Prevenirea blocajelor
Eliminm condiia de excluziune mutual Unele dispozitive cum ar fi imprimanta pot utiliza tehnica spooling
Blocajul la imprimant este eliminat.
20
Prevenirea blocajelor
Eliminm condiia de deinere-ateptare
Probleme
Procesul nu tie ntotdeauna de care resurse are nevoie nainte de a-i ncepe execuia. Procesul poate ocupa inutil resurse care pot fi alocate altor procese.
Variaie:
Procesele s poat elibera toate resursele i s le primeasc imediat napoi dac le solicit.
21
Prevenirea blocajelor
Eliminm condiia de nonpreempiune
Nu este o opiune viabil deoarece nu se poate retrage forat o resurs unui proces. Exemplu: un proces ce tiprete un document pierde accesul la imprimant n mijlocul operaiei de tiprire
22
Prevenirea blocajelor
Eliminm condiia de ateptare circular
(a)
(b)
24
Comunication deadlocks
Dou procese se pot bloca chiar dac nu doresc partajarea aceleiai resurse:
Procesul A trimite o cerere ctre procesul B. Procesul A intr n starea blocked pn la recepionarea unui mesaj de la procesul B. Procesul B trimite mesaj ctre procesul A i intr la rndul su n starea blocked. Mesajul se pierde i ambele procese sunt blocate.
26
Livelock
2 procese A i B acceseaz 2 resurse R1 i R2 n ordinea de mai jos:
void A(void){ enter_region(&R1); enter_region(&R2); use_both_resources(); leave_region(&R2); leave_region(&R1); } void B(void){ enter_region(&R2); enter_region(&R1); use_both_resources(); leave_region(&R1); leave_region(&R2); }
Nici unul din procese nu va realiza un progres n execuia sa dar nici nu va intra n starea blocked. Acest tip de blocaj se numete livelock.
27
Starvation
Algoritm pentru alocarea imprimantei:fiierele de dimensiune mai mic au prioritate la tiprire. Algoritmul funcioneaz dac imprimanta primete numeroase cereri de tiprire a unor fiiere de dimensiune mic. Totui dac apare o cerere de tiprire a unui fiier de dimensiune mare, aceast cerere va fi amnat la infinit fr a comuta procesul aferent n starea blocked (The process is starving to death.) Soluia este: aplicarea strategiei de alocare primul sosit primul servit.
28
Definii blocajul. Ce este o resurs preemptibil? Ce este o resurs nonpreemptibil? Care sunt condiiile de apariie a unui blocaj? Cum se pot modela blocajele? Caracterizai algoritmul struului. Cum se realizeaz detecia i rezolvarea blocajelor? Cum se evit blocajele? Caracterizai starea sigur i nesigur. Caracterizai algoritmul bancherului pentru o singur resurs. Caracterizai algoritmul bancherului pentru resurse multiple. Cum se previn blocajele? Explicai i dai exemplu de two-phase blocking. Explicai i dai exemplu de comunication deadlock. Ce reprezint un livelock? Exemplificai. Exemplificai noiunea de starvation. Explicai diferenele dintre blocaj, livelock i starvation.
De tiut...
29
De tiut...
Un sistem lanseaz dou procese care pot solicita 3 resurse. Fiecare proces are nevoie de maximum 2 resurse. Sistemul se poate bloca? Explicai. Un sistem lanseaz patru procese care pot solicita cinci resurse. Alocarea curent a resurselor i maximul necesar sunt:
Procesul Procesul Procesul Procesul A B C D 1 2 1 1 Alocate 0 2 1 0 1 1 1 0 1 1 1 1 1 0 0 0 Maximum Disponibil 1 1 2 1 3 0 0 x 1 1 2 2 2 1 0 2 1 3 1 0 1 1 2 2 1
Care este cea mai mic valoare a lui x pentru ca aceasta s fie o stare sigur?
30
De tiut...
Dou procese A i B au nevoie de 3 nregistrri 1, 2, 3 dintr-o baz de date. Dac A solicit nregistrrile n ordinea 1,2,3 i B n ordinea 1,2,3 nu va exista blocaj. Dac n schimb A solicit nregistrrile n ordinea 1,2,3 i B n ordinea 3,2,1 va exista blocaj. Avnd la dispoziie trei resurse exist posibilitatea apariiei a 3!=6 solicitri din partea proceselor. Ce procent din aceste solicitri nu vor genera blocaje?
31
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.
32