Documente Academic
Documente Profesional
Documente Cultură
Fire de executie
Interblocarea proceselor
Sisteme de operare
Lect. Dr. Ozten CHELAI
Comunicarea
La procese comunicarea este mai redusa, deoarece procesele sunt utilizate în
implementarea de activităŃi independente cu o relaŃie foarte slabă între ele.
La firele de execuŃie comunicarea este mare deoarece sunt utilizate în
implementarea de activităŃi ce cooperează şi comunică frecvent cantităŃi
importante de informaŃii- prin resursele comune de memorie. Această formă de
comunicare este mai eficientă deoarece se face în acelaşi spaŃiu de memorie,
fără intervenŃia sistemului de operare în transferul de informaŃii.
Modelul echipă
În modelul echipă toate firele de execuŃie au acces la lista de aşteptare cu solicitari.
Fiecare fir este responsabil atât cu extragerea solicitării corespunzătoare logicii sale cât şi
cu soluŃionarea acesteia. După soluŃionarea unei solicitări un fir de execuŃie va inspecta
din nou lista de aşteptare pentru o nouă solicitare destinată tipului de execuŃie pe care o
implementează firul respectiv.
R2
P3
R1
P1 R3
P2 Graf de alocare resurse, fără
interblocare
R2
P3
R1
Se observă apariŃia unui ciclu în graful de alocare resurse. Analizând ciclul P2→ R2→
P3→ R1→ P2 se observă că resursa R1 are două instanŃe, una din ele aparŃinând
procesului P1 ce ar putea să o elibereze. Odată eliberată, acestă instanŃă poate fi alocată
procesului P3. În acest caz, deşi sunt implicate într-un ciclu, procesele P2 şi P3 nu sunt
interblocate.
Modelarea interblocării proceselor.
Graful alocarii resurselor
Dacă însă, sistemul fiind în acestă nouă stare, apare şi o
solicitare din partea lui P1 pentru alocarea unei resurse de tip
R3, atunci în graf apare ciclul P2→ R2→ P3→ R1 → P1 → R3 →
P2.
De data acesta avem de a face cu o interblocare a ansamblului
proceselor P1, P2 şi P3 deoarece P1 aşteaptă eliberarea unei
resurse deŃinută de P2, P2 aşteaptă eliberarea unei resurse
deŃinută de P3 iar P3 aşteaptă eliberarea unei resurse cu două
instanŃe, ambele deŃinute de P2, respectiv de P1
P1 R3
P2 Graf de alocare resurse, cu
interblocare
R2
P3
R1
.
Tratarea interblocarii
proceselor
În general, prevenirea interblocării proceselor se
face impunând restricŃii asupra solicitării şi alocării
resurselor. Acest lucru conduce la o scădere a
coeficientului de utilizare a resurselor şi la reducerea
generalităŃii sistemului.
Există trei metode fundamentale pentru tratarea
interblocării proceselor.
Prevenirea sau evitarea interblocărilor prin proiectarea
sistemului astfel încât să nu fie posibilă apariŃia acestora.
Detectarea interblocărilor şi refacerea sistemului.
Ignorarea, bazată pe premiza că în sistem nu apar
interblocări.
Tratarea interblocarii
proceselor
Prevenirea interblocărilor, se bazează pe o serie de metode prin care
se asigură faptul că cele patru condiŃii necesare apariŃiei unei
interblocări nu vor fi îndeplinite simultan. Acest lucru se realizează prin
impunerea unei discipline de solicitare a resurselor bazată pe un set de
restricŃii.
Pentru evitarea interblocărilor sistemul de operare necesită în avans
informaŃiile referitoare la solicitările de resurse ce vor fi făcute de
fiecare proces. Pe baza lor se decide dacă o resursă liberă va fi alocată
procesului solicitant imediat sau cu o întârziere ce va permite evitarea
unei posibile interblocări ulterioare.
Detectarea interblocărilor şi refacerea sistemului se realizează prin
utilizarea unui algoritm care examinează starea sistemului pentru a
detecta apariŃia unei interblocări şi a unui algoritm pentru eliminarea
acesteia.
Ignorarea, bazată pe premiza că în sistem nu apar interblocări.
Majoritatea sistemelor de operare nu oferă facilităŃi de prevenire,
evitare sau detectare a interblocării proceselor, deci abordează metoda
tratării acestora prin ignorare. Această abordare este totuşi răspândită
fiind cea mai eficientă în ansamblu, deoarece tratarea interblocărilor
este costisitoare iar probabilitatea apariŃiei acestora este mică dacă
programele sunt bine realizate.
Prevenirea interblocarii
proceselor
Prevenirea interblocării proceselor se realizează în principiu prin
evitarea apariŃiei la un moment dat a cel puŃin uneia din condiŃiile
precizate.
Referitor la excluderea mutuală, resursele partajabile (cum ar fi de
exemplu un fişier accesibil doar pentru citire) nu necesită acces
exclusiv, deci nu pot fi implicate în blocaje permanente. Pe de altă
parte, excluderea mutuală este o condiŃie obligatorie de acces la
resursele nepartajabile, deci în acest caz nu poate fi evitată.
Fie următorul graf (figura (a)) reprezentând faptul că P1 deŃine R1 iar P2 solicită
R1. De asemenea, atât P1 cât şi P2 revendică R2, adică urmează să o solicite
în viitor.
R1 R1
P2 P2
P1 P1
R2 (a) R2 (b)
Figura. Graf de alocare pentru evitarea interblocării; stare sigură (a); stare nesigură (b)