Sunteți pe pagina 1din 7

Capitolul 8: Interblocări Problema Interblocării

 Modelul Sistemului  Un set de procese interblocate, fiecare deţinând o resursă şi


 Caracterizarea Interblocării aşteptând să obţină o resursă deţinută de un alt proces din set.

 Metode de Tratare a Interblocărilor  Exemple


 Sistemul are 2 unităţi de bandă.
 Prevenirea Interblocării
 P1 şi P2 fiecare deţine câte o unitate de bandă şi fiecare are nevoie
 Evitarea Interblocării de încă o unitate.
 Detectarea Interblocării  Exemple
 Revenirea din Interblocare  semafoarele A şi B, iniţializate pe 1
 Abordarea Combinată pentru Tratarea Interblocării

P0 P1
wait (A); wait(B)
wait (B); wait(A)

Operating System Concepts with Java 8.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.2 Silberschatz, Galvin and Gagne ©2003

Exemplul Traversării unui Pod Modelul Sistemului


 Tipuri de resurse R1, R2, . . ., Rm
Cicluri CPU, spaţiu de memorie, dispozitive I/E
 Fiecare tip de resursă Ri are Wi instanţe.
 Fiecare proces utilizează o resursă în modul următor:
 cerere
 folosire
 Traficul se poate desfăşura într-o singură direcţie.
 eliberare
 Fiecare secţiune a podului poate fi văzută ca şi o resursă.
 Dacă apare o interblocare, aceasta poate fi rezolvată
dacă o maşină dă înapoi (se preiau resursele şi se face
un rollback).
 Poate că mai multe maşini ar trebui date înapoi dacă
apare o interblocare.
 Este posibilă înfometarea .

Operating System Concepts with Java 8.3 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.4 Silberschatz, Galvin and Gagne ©2003

Caracterizarea Interblocării Graful de Alocare a Resurselor


Interblocarea poate apărea dacă simultan patru condiţii sunt adevărate

 Excludere mutuală: doar un singur proces poate folosi o


resursă la un moment dat. Un set de noduri V şi un set de arce E.
 Deţine şi aşteaptă: un proces care deţine cel puţin o resursă  V este partiţionat în două tipuri:
aşteaptă să primească resurse adiţionale deţinute de alte  P = {P1, P2, …, Pn}, setul constând din toate procesele din
procese. sistem.
 Fără preempţiune: o resursă poate fi eliberată doar în mod
voluntar de procesul care o deţine, după ce procesul respectiv şi-  R = {R1, R2, …, Rm}, setul constând din toate tipurile de
a terminat treaba. resurse din sistem.
 Aşteptare circulară: există un set {P0, P1, …, P0} de procese
 Arc de cerere – arc direcţionat P1  Rj
care aşteaptă astfel încât P0 aşteaptă pentru o resursă care este
deţinută de P1, P1 aşteaptă după o resursă care este deţinută de  Arc de asignare – arc direcţionat Rj  Pi
P2, …, Pn–1 aşteaptă pentru o resursă care este deţinută de
Pn, şi Pn aşteaptă după o resursă deţinută de P0.

Operating System Concepts with Java 8.5 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.6 Silberschatz, Galvin and Gagne ©2003

1
Exemplu de Graf de Alocare a Resurselor
Graful de Alocare a Resurselor (Cont.)
 Proces

 Tip de resursă cu 4 instanţe

 Pi cere o instanţă a Rj

Pi
Rj
 Pi deţine o instanţă a Rj

Pi
Rj

Operating System Concepts with Java 8.7 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.8 Silberschatz, Galvin and Gagne ©2003

Graf de Alocare a Resurselor cu o Graf de Alocare a Resurselor cu un Ciclu dar


Interblocare Fără Interblocare

Operating System Concepts with Java 8.9 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.10 Silberschatz, Galvin and Gagne ©2003

Evidenţe de Bază Metode de Tratare a Interblocărilor


 Dacă graful nu conţine cicluri  nu există interblocare.
 Asigurară faptul că sistemul nu va intra niciodată în starea de
interblocare.
 Dacă graful conţine un ciclu 
 Dacă există doar o singură instanţă pe tip de resursă, atunci este
 Permite sistemului să intre în starea de interblocare după care
interblocare.
efectuează o recuperare.
 Dacă există mai multe instanţe pe tip de resursă, posibilitate de
interblocare.
 Ignoră problema şi presupune că interblocări nu vor apărea
niciodată în sistem; folosit de cele mai multe sisteme de
operare, incluzând UNIX.

Operating System Concepts with Java 8.11 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.12 Silberschatz, Galvin and Gagne ©2003

2
Prevenirea Interblocării Prevenirea Interblocării (Cont.)
 Fără Preemţiune –
 Dacă un proces care deţine ceva resurse cere o altă resursă care
Restrânge modalităţile în care se poate efectua o cerere.
nu poate să-i fie alocată imediat, atunci toate resursele deţinute la
 Excludere Mutuală – nu se cere pentru resurse acel moment sunt eliberate.
partajabile; trebuie să ţină pentru resursele ne-partajabile.  Resursele eliberate sunt adăugate la lista resurselor pentru care
procesul aşteaptă.
 Deţine şi Aşteaptă – trebuie să garanteze că oricând un  Procesul va fi restartat doar când poate să recâştige toate resursele
proces cere o resursă, acesta nu mai deţine nici o altă sale vechi, precum şi cele noi pe care le ceruse.
resursă.
 Cere ca procesul să ceară şi sa-i fie alocate toate resursele  Aşteptare Circulară – impune o ordonare totală a tuturor
sale înainte de a începe execuţia, sau permite ca procesul tipurilor de resurse, şi cere ca fiecare proces să ceară resurse
să ceară resurse doar când procesul nu are nici una. într-o ordine crescătoare a enumerării.
 Slabă utilizare a resurselor; posibilitatea înfometării.

Operating System Concepts with Java 8.13 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.14 Silberschatz, Galvin and Gagne ©2003

Evitarea Interblocării Starea de Siguranţă


 Când un proces cere o resursă diaponibilă, sistemul
trebuie să decidă dacă alocarea imediată ar lăsa sistemul
Necesită ca sistemul să aibe informaţii a priori adiţionale disponibile. într-o stare sigură.
 Modelul cel mai simplu şi folositor cere ca fiecare proces
 Sistemul este într-o stare sigură dacă există o secvenţă
să-şi declare numărul maxim de resurse de fiecare tip pe
sigură a tuturor proceselor.
care s-ar putea să îl necesite.
 Secvenţa <P1, P2, …, Pn> este sigură dacă pentru
 Algoritmul de evitare a interblocării examinează în mod fiecare Pi, resursele pe care Pi le mai poate solicita pot fi
dinamic starea de alocare a resurselor pentru a asigura satisfăcute de resursele disponibile în mod curent +
că nu poate exista niciodată o condiţie de aşteptare resursele deţinute de toate Pj, cu j<I.
circulară.  Dacă nevoile de resurse ale lui Pi nu sunt disponibile imediat, atunci
Pi poate aştepta până când toate Pj s-au terminat.
 Când Pj s-a terminat, Pi poate obţine resursele necesare, executa,
 Starea de alocare de resurse este definit de numărul de întoarce resursele alocate, şi termina.
resurse disponibile şi alocate, şi cererea maximă a  Când Pi se termină, Pi+1 poate obţine resursele necesare, ş.a.m.d.
proceselor.

Operating System Concepts with Java 8.15 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.16 Silberschatz, Galvin and Gagne ©2003

Evidenţe de Bază Stările de Siguranţă, Nesiguranţă, Interblocat

 Dacă un sistem este într-o stare sigură  fără interblocare.

 Dacă un sistem este într-o stare nesigură  posibilitate de


interblocare.

 Evitare  asigură că un sistem nu va intra niciodată într-o stare


nesigură.

Operating System Concepts with Java 8.17 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.18 Silberschatz, Galvin and Gagne ©2003

3
Graful de Alocare a Resurselor pentru Evitarea
Algoritmul Grafului de Alocare a Resurselor Interblocării

 Arcul de revendicare Pi  Rj indică faptul că procesul Pj poate


cere resursa Rj; reprezentat prin linie întreruptă.

 Arcul de revendicare se converteşte în arc de cerere când un


proces cere o resursă.

 Când o resursă este eliberată de un proces, arcul de asignare se


converteşte înapoi în arc de revendicare.

 Resursele trebuiesc revendicate a priori în sistem.

Operating System Concepts with Java 8.19 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.20 Silberschatz, Galvin and Gagne ©2003

Stare Nesigură în Graful de Alocare a


Resurselor Algoritmul Bancherului
 Instanţe multiple.

 Fiecare proces trebuie să revendice a priori necesarul maxim.

 Când un proces cere o resursă s-ar putea să fie nevoit să


aştepte.

 Când un proces primeşte toate resursele sale, el trebuie să le


întoarcă într-un interval de timp finit.

Operating System Concepts with Java 8.21 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.22 Silberschatz, Galvin and Gagne ©2003

Structuri de Date pentru Algoritmul


Bancherului Algoritmul de Siguranţă
1. Fie Work şi Finish vectori de lungime m şi respectiv n.
Fie n = numărul de procese, şi m = numărul de tipuri de resurse. Iniţializează:
Work = Available
 Available: Vector de lungime m. Dacă Available [j] = k,
Finish [i] = false pentru i = 1,2, …, n.
atunci sunt k instanţe disponibile din resursa de tipul Rj.
2. Găseşte orice i astfel încât:
 Max: matrice n x m. Dacă Max [i,j] = k, atunci procesul Pi (a) Finish [i] = false
poate cere cel mult k instanţe din resursa de tipul Rj. (b) Needi  Work
 Allocation: matrice n x m. Dacă Allocation [i,j] = k atunci Dacă nu există astfel de i, dute la pasul 4.
lui Pi îi sunt momentan alocate k instanţe ale lui Rj. 3. Work = Work + Allocationi
Finish[i] = true
 Need: matrice n x m. Dacă Need [i,j] = k, atunci Pi ar dute la pasul 2.
putea avea nevoie în plus de k instanţe ale lui Rj pentru a- 4. Dacă Finish [i] == true pentru toate i, atunci sistemul este într-o
şi completa sarcina. stare sigură.

Need [i,j] = Max [i,j] – Allocation [i,j].

Operating System Concepts with Java 8.23 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.24 Silberschatz, Galvin and Gagne ©2003

4
Algoritmul de Cerere de Resursă pentru
Exemplu pentru Algoritmul Bancherului
Procesul Pi
Request = vectorul de cerere pentru procesul Pi.  5 procese P0 până la P4; 3 tipuri de resurse A (10 instanţe),
Dacă Requesti [j] = k atunci procesul Pi doreşte k instanţe din tipul B (5 instanţe) şi C (7 instanţe).
de resurse Rj.
1. Dacă Requesti  Needi du-te la pasul 2. Altfel, provoacă o eroare,  Vedere la timpul T0:
deoarece procesul şi-a depăşit revendicarea maximă.
2. Dacă Requesti  Available, du-te la pasul 3. Altfel Pi trebuie să
Allocation Max Available
aştepte, deoarece resursele nu sunt disponibile.
ABC ABC ABC
3. Simulează alocarea resurselor cerute lui Pi prin modificarea stării
cum urmează: P0 010 753 332
Available = Available = Requesti;
Allocationi = Allocationi + Requesti;
P1 200 322
Needi = Needi – Requesti;; P2 302 902
• Dacă e sigur  resursele sunt alocate lui Pi.
P3 211 222
• Dacă este nesigur  Pi trebuie să aştepte, şi vechea stare de
alocare a resurselor este restaurată P4 002 433

Operating System Concepts with Java 8.25 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.26 Silberschatz, Galvin and Gagne ©2003

Exemplu (Cont.) Exemplu P1 Cere (1,0,2) (Cont.)

 Conţinutul matricii Need este definit ca fiind Max – Allocation.  Verifică faptul că Request  Available (adică, (1,0,2)  (3,3,2)
Need  true.
ABC Allocation Need Available
ABC ABC ABC
P0 743
P0 010 743 230
P1 122 P1 302 020
P2 600 P2 301 600
P3 011 P3 211 011
P4 431 P4 002 431
 Executând algoritmul de siguranţă arată că secvenţa <P1,
 Sistemul este într-o stare sigură deoarece secvenţa < P1, P3,
P3, P4, P0, P2> satisface cerinţele de siguranţă.
P4, P2, P0> satisface criteriul de siguranţă.
 Oare cererea pentru (3,3,0) de către P4 poate fi aprobată?
 Oare cererea pentru (0,2,0) de către P0 poate fi aprobată?

Operating System Concepts with Java 8.27 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.28 Silberschatz, Galvin and Gagne ©2003

O Singură instanţă din Fiecare Tip de


Detecţia Interblocării
Resursă
 Permite ca sistemul dă intre în stare de interblocare  Menţine un graf de aşteptare-pentru (wait-for graph)
 Nodurile sunt procese.
 Algoritmul de detecţie  Pi  Pj dacă Pi aşteaptă pentru Pj.

 Schema de recuperare  Periodic apelează un algoritm care caută un ciclu în graf.

 Un algoritm pentru detectarea unui ciclu într-un graf necesită un


număr de operaţii de ordinul n2, unde n este numărul de noduri
din graf.

Operating System Concepts with Java 8.29 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.30 Silberschatz, Galvin and Gagne ©2003

5
Graful de Alocare a Resurselor şi Graful de Mai Multe Instanţe pentru un anumit
Aşteptare-pentru Tip de Resurse

 Available: Un vector de lungime m indică numărul de


resurse disponibile din fiecare tip.

 Allocation: O matrice n x m defineşte numărul de resurse


din fiecare tip alocate momentan fiecărui proces.

 Request: O matrice n x m indică cererea curentă a


fiecărui proces. Dacă Request [ij] = k, atunci procesul Pi
cere k instanţe suplimentare din tipul de resurse Rj.

Resource-Allocation Graph Corresponding wait-for graph

Operating System Concepts with Java 8.31 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.32 Silberschatz, Galvin and Gagne ©2003

Algoritmul de Detecţie Algoritmul de Detecţie (Cont.)


1. Fie Work şi Finish vectori de lungime m şi respectiv n. 3. Work = Work + Allocationi
Iniţializează: Finish[i] = true
dute la pasul 2.
(a) Work = Available
(b) Pentru i = 1,2, …, n, dacă Allocationi  0, atunci 4. Dacă Finish[i] == false, pentru un anumit i, 1  i  n, atunci sistemul
Finish[i] = false; altfel, Finish[i] = true. este într-o stare de interblocare. Mai mult, dacă Finish[i] == false, atunci
Pi este interblocat.
2. Găseşte un index i astfel încât:
(a) Finish[i] == false
(b) Requesti  Work Algoritmul necesită un număr de operaţii de ordinul O(m x n2)
pentru a detecta dacă sistemul este într-o stare de interblocare.
Dacă nu există un astfel de i, dute la pasul 4.

Operating System Concepts with Java 8.33 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.34 Silberschatz, Galvin and Gagne ©2003

Exemplu a Algoritmului de Detecţie Exemplu (Cont.)


 Cinci procese P0 până la P4; trei tipuri de resurse  P2 cere o altă instanţă de tipul C.
A (7 instanţe), B (2 instanţe) şi C (6 instanţe). Request
 Vedere la timpul T0: ABC
Allocation Request Available P0 000
ABC ABC ABC P1 201
P0 010 000 000 P2 001
P1 200 202 P3 100
P2 303 000 P4 002
P3 211 100  Starea sistemului?
P4 002 002  Putem revendica resursele deţinute de procesul P0, dar nu există
 Secvenţa <P0, P2, P3, P1, P4> va rezulta în Finish[i] = true pentru resurse suficiente pentru a satisface cererile celorlalte procese.
toţi i.  Există interblocare, constând din procesele P1, P2, P3, şi P4.

Operating System Concepts with Java 8.35 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.36 Silberschatz, Galvin and Gagne ©2003

6
Revenirea din Interblocare:
Folosirea Algoritmului de Detecţie
Terminarea Procesului
 Când şi cât de des se apelează depinde de:  Renunţă la toate procesele interblocate.
 Cât de des este probabilă apariţia interblocării?
 Câte procese vor trebui restaurate?  Renunţă la un proces la un moment dat până când ciclul de
 Unul pentru fiecare ciclu disjunct interblocare este eliminat.

 Dacă algoritmul de detecţie este apelat arbitrar, pot exista multe  În care ordine ar trebui să se aleagă renunţarea?
cicluri în graful de resurse şi astfel nu am putea să spunem care  Prioritatea procesului.
dintre mulţimea de procese interblocate a “cauzat” interblocarea.  Timpul cât procesul a rulat şi cât mai are până la terminare.
 Resurse pe care procesul le-a folosit.
 Resursele necesare pentru ca procesul să se termine.
 La câte procese trebuie să se renunţe.
 Este procesul interactiv sau batch?

Operating System Concepts with Java 8.37 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.38 Silberschatz, Galvin and Gagne ©2003

Revenirea din Interblocare: Abordarea Combinată în Tratarea


Preempţiunea Resursei Interblocării
 Selectarea unei victime – minimizarea costului.  Combinarea celor trei abordări de bază
 prevenirea
 Rollback – revenirea la o stare sigură, restartează procesul din  evitarea
starea respectivă.  detecţia
permiţând folosirea abordării optimale pentru fiecare dintre
 Înfometare – s-ar putea ca acelaşi proces să fie ales resursele din sistem.
întotdeauna ca şi victimă, include numărul de rollback-uri în
factorul de cost.
 Partiţionarea resurselor în clase ordonate ierarhic.

 Folosirea celei mai potrivite tehnici pentru tratarea interblocărilor


în cadrul fiecărei clase.

Operating System Concepts with Java 8.39 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.40 Silberschatz, Galvin and Gagne ©2003

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

  • OS107
    OS107
    Document12 pagini
    OS107
    Alex Mang
    Încă nu există evaluări
  • OS102
    OS102
    Document5 pagini
    OS102
    Alex Mang
    Încă nu există evaluări
  • OS106
    OS106
    Document7 pagini
    OS106
    Alex Mang
    Încă nu există evaluări
  • OS101
    OS101
    Document5 pagini
    OS101
    Alex Mang
    Încă nu există evaluări
  • OS104
    OS104
    Document8 pagini
    OS104
    Alex Mang
    Încă nu există evaluări
  • OS109
    OS109
    Document9 pagini
    OS109
    Alex Mang
    Încă nu există evaluări
  • Fisa Elevului
    Fisa Elevului
    Document4 pagini
    Fisa Elevului
    Alex Mang
    Încă nu există evaluări
  • Plan Lectie 3
    Plan Lectie 3
    Document4 pagini
    Plan Lectie 3
    Alex Mang
    Încă nu există evaluări
  • Plan Lectie 2
    Plan Lectie 2
    Document3 pagini
    Plan Lectie 2
    Alex Mang
    Încă nu există evaluări
  • Plan Lectie 1
    Plan Lectie 1
    Document4 pagini
    Plan Lectie 1
    Alex Mang
    Încă nu există evaluări
  • Plan Lectie 5
    Plan Lectie 5
    Document3 pagini
    Plan Lectie 5
    Alex Mang
    Încă nu există evaluări