Recomandat, 2024

Alegerea Editorului

Diferența dintre Deadlock și Starvation în sistemul de operare

Blocajele și înfometarea sunt ambele condiții în care procesele care solicită o resursă au fost întârziate pentru o lungă perioadă de timp. Deși blocajul și înfometarea sunt diferite în multe privințe. Blocajul este o condiție în care nici un proces nu se execută pentru execuție și fiecare așteaptă resursele care au fost obținute de celelalte procese. Pe de altă parte, în procesul de înfometare, procesul cu priorități ridicate utilizează în mod continuu resursele care împiedică procesul de prioritate redusă pentru a obține resursele. Să discutăm câteva diferențe mai multe dintre blocaj și înfometare, cu ajutorul graficului de comparație prezentat mai jos.

Diagramă de comparație

Bazele comparăriiImpasFoame
De bazăBlocajul este locul în care nu se desfășoară nici un proces și se blochează.Înfometarea este în cazul în care procesele cu prioritate scăzută sunt blocate, iar procesul cu prioritate înaltă continuă.
Starea de aparițieApariția excluziunii mutuale, țineți și așteptați, fără preemțiune și circular așteptați simultan.Aplicarea priorităților, gestionarea necontrolată a resurselor.
Alt numeCirculara asteapta.Lifelock.
ResurseÎn zonele blocate, resursele solicitate sunt blocate de celelalte procese.În cazul înfometării, resursele solicitate sunt utilizate în mod continuu de procesele cu prioritate ridicată.
profilaxieEvitați excluderea reciprocă, țineți și așteptați, așteptați circular și permițând preemptibilitatea.Îmbătrânire.

Definiția Deadlock

Deadlock este o situație în care mai multe procese din CPU concurează pentru numărul finit de resurse disponibile în cadrul procesorului. Aici, fiecare proces deține o resursă și așteaptă să achiziționeze o resursă care este susținută de un alt proces. Toate procesele așteaptă resursele într-un mod circular. În imaginea de mai jos, puteți vedea că Procesul P1 a achiziționat resursa R2 care este solicitată de procesul P2, iar Procesul P1 solicită pentru resursa R1 care este reținută din nou de către R2. Deci procesele P1 și P2 formează un blocaj.

Blocajul este o problemă obișnuită în sistemele de operare multiprocesare, sistemele distribuite și, de asemenea, în sistemele de calcul paralel. Există patru condiții care trebuie să apară simultan pentru a ridica condiția de blocare, care sunt excluderea reciprocă, așteptare și așteptare, fără preemțiune și așteptare circulară.

  • Excluderea mutuală: Un singur proces poate folosi o resursă dacă un alt proces cere aceeași resursă, trebuie să aștepte până când procesul de utilizare a resurselor îl eliberează.
  • Țineți și așteptați: Un proces trebuie să dețină o resursă și să aștepte să achiziționați o altă resursă care este deținută de un alt proces.
  • Nicio preempțiune: procesul care deține resursele nu poate fi preemptat. Procesul care deține resursa trebuie să elibereze resursa în mod voluntar atunci când își îndeplinește sarcina.
  • Circulară așteaptă: procesul trebuie să aștepte resursele în mod circular. Să presupunem că avem trei procese {P0, P1, P2}. P0 trebuie să aștepte resursele deținute de P1; P1 trebuie să aștepte să achiziționeze resursele deținute de procesul P2, iar P2 trebuie să aștepte să achiziționeze procesul deținut de P0.

Deși există unele aplicații care pot detecta programele care pot deveni blocate. Dar sistemul de operare nu este niciodată responsabil pentru prevenirea blocajelor. Este responsabilitatea programatorilor să proiecteze programe fără blocaj. Se poate face prin evitarea condițiilor de mai sus care sunt necesare pentru apariția blocajului

Definiția Starvation

Înfometarea poate fi definită ca atunci când o cerere de proces pentru o resursă și acea resursă a fost folosită în mod continuu de către celelalte procese, atunci procesul solicitant se confruntă cu foamete. În procesul de înfometare, un proces gata de executare așteaptă ca CPU să aloce resursa. Dar procesul trebuie să aștepte pe termen nelimitat, deoarece celelalte procese blochează continuu resursele solicitate.

Problema foametei apare în general în algoritmul de programare prioritară . În algoritmul de programare prioritară, procesul cu prioritate mai mare este întotdeauna alocat resursei, împiedicând procesul de prioritate inferioară să obțină resursa solicitată.

Îmbătrânirea poate rezolva problema înfometării. Îmbătrânirea crește treptat prioritatea procesului care a așteptat mult timp pentru resurse. Îmbătrânirea împiedică un proces cu prioritate scăzută să aștepte pe termen nelimitat pentru o resursă.

Diferențele cheie între deadlock și foame în OS

  1. Într-un impas, niciunul dintre procese nu continuă pentru execuție, fiecare proces este blocat așteptând resursele dobândite de alt proces. Pe de altă parte, foametea este o condiție în care procesele care posedă o prioritate mai mare permit obținerea continuă a resurselor, împiedicând procesele cu prioritate scăzută să obțină resurse care duc la blocarea nedefinită a proceselor cu prioritate scăzută.
  2. Blocajul apare atunci când patru condiții Excludere mutuală, țineți și așteptați, fără preemțiune și așteptare circulară are loc simultan. Cu toate acestea, foametea apare atunci când prioritățile procesului au fost aplicate în timp ce alocarea resurselor sau există o gestionare necontrolată a resurselor în sistem.
  3. Blocajul este adesea numit de numele " circular wait", în timp ce foamea se numește Lived lock .
  4. În Deadlock, resursele sunt blocate de proces, în timp ce, în condiții de foame, procesele sunt utilizate în mod continuu de către procesele cu priorități mari.
  5. Blocajele pot fi prevenite prin evitarea unor condiții cum ar fi excluderea reciprocă, așteptare și așteptare, așteptare circulară și permițând preemparea proceselor care dețin resurse pentru o perioadă lungă de timp. Pe de altă parte, îngăduirea poate fi împiedicată de îmbătrânire .

Concluzie:

Atât Deadlock cât și Starvation întârzie executarea procesului blocând-o. Pe de o parte, în cazul în care blocajul poate provoca procese de a muri de foame, iar pe de altă parte, foametea poate scoate procesele din impas.

Top