Documente Academic
Documente Profesional
Documente Cultură
OS108
OS108
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
Operating System Concepts with Java 8.3 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.4 Silberschatz, Galvin and Gagne ©2003
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
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
Operating System Concepts with Java 8.9 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.10 Silberschatz, Galvin and Gagne ©2003
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
Operating System Concepts with Java 8.15 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.16 Silberschatz, Galvin and Gagne ©2003
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
Operating System Concepts with Java 8.19 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.20 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 8.21 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.22 Silberschatz, Galvin and Gagne ©2003
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
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
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
Operating System Concepts with Java 8.31 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.32 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 8.33 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.34 Silberschatz, Galvin and Gagne ©2003
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
Operating System Concepts with Java 8.39 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 8.40 Silberschatz, Galvin and Gagne ©2003