Sunteți pe pagina 1din 32

1

Blocaje
Curs 6

Conceptul de blocaj
Ignorarea blocajelor sau algoritmul struului
Detectarea i rezolvarea blocajelor
Evitarea blocajelor
Prevenirea blocajelor

2
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
3
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



4
Resurse (3)
Secvena de evenimente necesar utilizrii
unei resurse este urmtoarea:
Solicit resursa
Utilizez resursa
Eliberez resursa
Dac resursa solicitat nu este disponibil
Procesul poate fi blocat sau
Poate returna un cod de eroare
5
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
6
Condiiile de apariie a unui blocaj
1. De excluziune mutual
Fiecare resurs este fie ocupat de un proces fie liber.
2. De deinere-ateptare a unei resurse
Un proces ce deine resurse poate solicita resurse noi.
3. Nonpreemptivitii
Resursele ocupate nu pot fi retrase forat unui proces.
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.
7
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
8
Modelarea blocajelor(2)
Strategii pentru rezolvarea blocajelor:
1. Ignorarea problemei blocajelor
2. Detectarea i rezolvarea blocajelor
3. Evitarea dinamic blocajelor
Alocarea atent a resurselor
4. Prevenirea blocajelor
Negarea uneia din cele patru condiii de apariie a
blocajelor
9 Cum apare un blocaj
A B C
Modelarea blocajelor(3)
10
Modelarea blocajelor(4)
Cum poate fi evitat un blocaj
(o) (p) (q)
11
Ignorarea blocajelor- algoritmul
struului
Se bazeaz pe prezumpia c nu exist blocaje
Prezumpia este rezonabil dac
Blocajele apar foarte rar
Costul prevenirii blocajelor este mare
UNIX i Windows utilizeaz aceast abordare
Este un compromis ntre
comoditate
corectitudine
12
Detecia i rezolvarea blocajelor
Monitorizeaz solicitrile i eliberrile de resurse.
Poate fi identificat un ciclu care denot apariia unui
blocaj
13
Rezolvarea blocajelor(1)
Rezolvare prin preempiune
Eliberarea unei resurse alocate unui alt proces
Metod dependent de natura resursei
Rezolvare prin derulare napoi(rollback)
Marcarea punctelor de execuie a unui proces
Salvarea strii unui proces i utilizarea ei
Restartarea procesului din punctul de execuie
marcat dac se identific blocaj

14
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)
15
Evitarea blocajelor
Traiectoria resurselor
Traiectoriile resurselor a dou procese
16
Stri sigure i nesigure(1)
Demonstraie: starea (a) este sigur/nesigur?
(a) (b) (c) (d) (e)
17
Stri sigure i nesigure(2)
Demonstraie: starea (b) este sigur/nesigur?
(a) (b) (c) (d)
18
Algoritmul bancherului pentru o singur resurs
Precizai care din cele trei stri este nesigur, tiind
c sunt disponibile 10 uniti.
(a) (b) (c)
19
Algoritmul bancherului pentru resurse multiple
20
Prevenirea blocajelor
Eliminm condiia de excluziune mutual
Unele dispozitive cum ar fi imprimanta pot utiliza
tehnica spooling
Blocajul la imprimant este eliminat.
Nu toate resursele utilizeaz tehnica spooling.
Poate funciona dac:
Evitarea alocrii resurselor dect n cazuri absolut
necesare.
Ct mai puine procese realizeaz solicitarea unei anumite
resurse.

21
Prevenirea blocajelor
Eliminm condiia de deinere-ateptare
Procesele trebuie s solicite resurse nainte de fi lansate
n execuie
Un proces nu ateapt niciodat resursele de care are nevoie.
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.
22
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

23
Prevenirea blocajelor
Eliminm condiia de ateptare circular
Resurse accesate n ordine cresctoare
Graful resurselor nu va prezenta cicluri
(a) (b)
24
Recapitulare prevenirea blocajelor
Condiie Abordare
Excluziune mutual Spooling
Deinere-Ateptare Solicit toate resursele
iniial
Nonpreempiune Retrage resursa
Ateptare circular Numeroteaz i acceseaz
resursele n ordine
cresctoare
25
Alte tipuri de blocaje
Two-phase locking
Faza 1
Procesul rezerv nregistrrile de care are nevoie una
cte una
Dac cel puin una din nregistrri este deja rezervat i
reia execuia
Dac faza 1 s-a ncheiat cu succes procesul va:
Realiza actualizri
Elibera nregistrrile
Este similar metodei n care toate resursele sunt alocate
nainte de execuia propriu-zis a procesului
Algoritmul funcioneaz dac programatorul este foarte
atent ca un proces care a fost oprit din execuia primei faze
s poat fi restartat.
26
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.
27
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.
28
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.

29
De tiut...
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.


30
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 A 1 0 2 1 1 1 1 2 1 3 0 0 x 1 1
Procesul B 2 0 1 1 0 2 2 2 1 0
Procesul C 1 1 0 1 0 2 1 3 1 0
Procesul D 1 1 1 1 0 1 1 2 2 1
Alocate Maximum Disponibil
Care este cea mai mic valoare a lui x pentru
ca aceasta s fie o stare sigur?
31
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?

32
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.

S-ar putea să vă placă și