Blocaj în impas OperaSistemul de control: Ce este, Așteptare circulară (Exemple)
⚡ Rezumat inteligent
Blocajul într-un sistem de operare apare atunci când un set de procese este blocat deoarece fiecare deține o resursă și așteaptă o alta pe care o deține un alt proces, creând un lanț circular în care niciun proces nu poate continua.

Ce este Deadlock?
Impas este o situație care apare într-un sistem de operare când un proces intră într-o stare de așteptare deoarece un alt proces în așteptare deține resursa solicitată. Blocajul este o problemă comună în multiprocesare, unde mai multe procese partajează un anumit tip de resursă care se exclude reciproc, cunoscută sub numele de blocare soft sau blocare software.
Când apare un blocaj, niciunul dintre procesele implicate nu poate continua, așa că lucrarea afectată se oprește până când sistemul de operare intervine.
Exemplu de blocaj
- Un exemplu din lumea reală ar fi traficul care merge într-o singură direcție.
- Aici, un pod este considerat o resursă.
- Deci, atunci când apare un blocaj, acesta poate fi rezolvat dacă o mașină se blochează (preia resursele și revine la starea inițială).
- Este posibil ca mai multe mașini să fie nevoite să facă backup dacă apare o situație de blocaj.
- Deci, înfometarea este posibilă.
Exemplu de blocaj
Ce este așteptarea circulară?
Un proces așteaptă o resursă deținută de un al doilea proces, care așteaptă, de asemenea, o resursă deținută de un al treilea proces și așa mai departe. Aceasta continuă până când ultimul proces așteaptă o resursă deținută de primul proces. Aceasta creează un lanț circular.
De exemplu, Procesului A i se alocă Resursa B în timp ce solicită Resursa A. În același mod, Procesului B i se alocă Resursa A în timp ce solicită Resursa B. Aceasta creează o buclă de așteptare circulară.
Exemplu de așteptare circulară
De exemplu, un computer are trei unități USB și trei procese. Fiecare dintre cele trei procese deține una dintre unitățile USB. Așadar, atunci când fiecare proces solicită o altă unitate, cele trei procese ajung într-o situație de blocaj, deoarece fiecare așteaptă ca o unitate USB să fie eliberată în timp ce aceasta este încă în uz. Acest lucru are ca rezultat un lanț circular.
Exemplu de așteptare circulară
Detectarea blocajului în sistemul de operare
O apariție a unui blocaj poate fi detectată de planificatorul de resurse. Un planificator de resurse ajută sistemul de operare să mențină track din toate resursele alocate diferitelor procese. Odată ce este detectată o blocare, aceasta poate fi rezolvată prin preluarea resurselor, anularea unui proces sau terminarea unuia sau mai multor procese blocate.
Prevenirea blocajului în sistemul de operare
Este important să se prevină un blocaj înainte ca acesta să apară. Sistemul verifică fiecare tranzacție înainte de a fi executată pentru a se asigura că nu duce la un blocaj. Chiar și o operațiune mică, care ar putea cauza un blocaj în viitor, nu este permisă niciodată să se execute.
Prevenirea blocajelor este un set de metode pentru a se asigura că cel puțin una dintre cele patru condiții necesare nu poate fi îndeplinită.
Fără Prevenire
O resursă poate fi eliberată doar voluntar de către procesul care o deține, după ce acel proces și-a terminat sarcina.
- Dacă un proces care deține anumite resurse solicită o altă resursă ce nu îi poate fi alocată imediat, atunci toate resursele sale sunt eliberate.
- Resursele preemptate sunt adăugate la lista de resurse pe care procesul le așteaptă.
- Procesul este repornit numai atunci când își poate recupera atât resursele vechi, cât și pe cele noi pe care le solicită.
Excludere mutuala
Excluderea mutuală este forma completă a lui Mutex. Este un tip special de cod binar. semafor care este utilizat pentru controlul accesului la o resursă partajată. Include un mecanism de moștenire a priorității pentru a evita problemele de inversare extinsă a priorității și menține sarcinile cu prioritate mai mare blocate pentru cel mai scurt timp posibil.
Resursele partajate, cum ar fi fișierele doar pentru citire, nu duc niciodată la blocaje, dar resurse precum imprimantele și unitățile de bandă necesită acces exclusiv de către un singur proces.
Țineți și așteptați
În această condiție, procesele trebuie oprite din a reține una sau mai multe resurse în timp ce așteaptă simultan una sau mai multe altele.
Așteptați circular
Această metodă impune o ordonare totală a tuturor tipurilor de resurse. Prevenirea așteptării circulare necesită, de asemenea, ca fiecare proces să solicite resurse într-o ordine crescătoare de enumerare.
Evitarea blocajului Algorithms
Este mai bine să evitați un impas decât să luați măsuri după ce a apărut impasul. Evitarea necesită informații suplimentare, cum ar fi modul în care vor fi utilizate resursele. Evitarea impasului este un model util în care fiecare proces declară numărul maxim de resurse de fiecare tip de care ar putea avea nevoie.
Evitare Algorithms
Algoritmul de evitare a blocajelor evaluează dinamic starea de alocare a resurselor, astfel încât o situație de așteptare circulară să nu poată apărea niciodată.
Pentru o singură instanță a unui tip de resursă:
- Folosește un grafic de alocare a resurselor.
- Un ciclu în graf este necesar și suficient pentru un impas.
Pentru mai multe instanțe ale unui tip de resursă:
- Un ciclu este necesar, dar nu suficient pentru un impas.
- Folosește Algoritmul bancherului.
Diferența dintre foame și blocaj
Iată câteva diferențe importante între impas și înfometare:
| Impas | înfometare |
|---|---|
| Situația de blocaj apare atunci când unul dintre procese este blocat. | Înfometarea este o situație în care toate procesele cu prioritate scăzută sunt blocate în timp ce procesele cu prioritate ridicată se execută. |
| Blocajul este un proces infinit. | Înfometarea este o așteptare lungă, dar nu un proces infinit. |
| Fiecare impas implică întotdeauna înfometare. | Nu fiecare înfometare are neapărat un impas. |
| Blocajul apare din cauza excluderii reciproce, a menținerii și a așteptării, a absenței preempțiunii și a așteptării circulare care au loc împreună. | Se întâmplă din cauza priorității necontrolate și a gestionării deficitare a resurselor. |
Avantajele Deadlock
Iată avantajele utilizării metodei de gestionare a blocajelor:
- Această situație funcționează bine pentru procesele care efectuează o singură explozie de activitate.
- Nu este necesară preempțiunea pentru blocaj.
- Este o metodă convenabilă atunci când este aplicată resurselor a căror stare poate fi salvată și restaurată cu ușurință.
- Este fezabilă aplicarea acesteia prin verificări la compilare.
- Nu necesită calcule în timpul execuției, deoarece problema este rezolvată în proiectarea sistemului.
Dezavantajele Deadlock
Iată dezavantajele utilizării metodei de gestionare a blocajelor:
- Întârzie inițierea procesului.
- Procesele trebuie să își cunoască în avans nevoile viitoare de resurse.
- Se preempționează mai des decât este necesar.
- Nu permite solicitări incrementale de resurse.
- Are pierderi inerente de preempțiune.


