Diferența dintre impas și înfometare în sistem de operare

Autor: Laura McKinney
Data Creației: 3 Aprilie 2021
Data Actualizării: 23 Aprilie 2024
Anonim
Diferența dintre impas și înfometare în sistem de operare - Tehnologie
Diferența dintre impas și înfometare în sistem de operare - Tehnologie

Conţinut


Deadlock și Starvation sunt ambele condiții în care procesele care solicită o resursă au fost amânate pentru o lungă perioadă de timp. Deși impasul și înfometarea ambelor sunt diferite între ele în multe aspecte. Impas este o condiție în care nu se procedează la nici un proces pentru executare și fiecare așteaptă resurse care au fost obținute de celelalte procese. Pe de altă parte, în Foame, procesul cu priorități înalte folosește continuu resursele care împiedică procesul de prioritate scăzută pentru a achiziționa resursele. Să discutăm alte diferențe între impas și înfometare cu ajutorul graficului de comparație prezentat mai jos.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparareImpasFoame
De bazăDeadlock este locul în care nu se desfășoară niciun proces și este blocat.Înfometarea este în cazul în care procesele cu prioritate scăzută sunt blocate și procesul de prioritate ridicată.
Stare de aparițieApariția excluderii reciproce, Reținere și așteptare, Fără preemisiune și Circulare așteaptă simultan.Executarea priorităților, gestionarea necontrolată a resurselor.
Alt numeAșteptare circulară.Lifelock.
ResurseÎn blocaj, resursele solicitate sunt blocate de celelalte procese.La înfometare, resursele solicitate sunt utilizate în mod continuu de procesele cu prioritate ridicată.
profilaxieEvitarea excluderii reciproce, mențineți și așteptați și așteptați circular și permiteți preeminarea. Î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ă deținută de un alt proces. Toate procesele așteaptă resurse în 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ă resursa R1 care este din nou deținută de R2. Deci procesarea P1 și P2 formează un impas.

Deadlock este o problemă comună în sistemele de operare multiprocesare, sisteme distribuite și, de asemenea, în sisteme de calcul paralele. Există patru condiții care trebuie să apară simultan pentru ridicarea condiției de impas, care sunt excluderea reciprocă, menținerea și așteptarea, fără preeminție și așteptarea circulară.


  • Excludere mutuala: Doar un singur proces poate utiliza o resursă dacă un alt proces solicită aceeași resursă, trebuie să aștepte până când procesul utilizează resursa o eliberează.
  • Rețineți și așteptați: Un proces trebuie să țină o resursă și să aștepte să obțină o altă resursă care este deținută de un alt proces.
  • Fără precupare: Procesul care deține resursele nu poate fi preconizat. Procesul care deține resursa trebuie să elibereze resursa în mod voluntar atunci când și-a încheiat sarcina.
  • Așteptare circulară: Procesul trebuie să aștepte resursele în mod circular. Să presupunem că avem trei procese {P0, P1, P2}. P0 trebuie să aștepte resursa deținută de P1; P1 trebuie să aștepte pentru a achiziționa resursa deținută de procesul P2, iar P2 trebuie să aștepte pentru a achiziționa procesul deținut de P0.

Deși există unele aplicații care pot detecta programele care pot fi blocate. Dar sistemul de operare nu este niciodată responsabil de prevenirea impasurilor. Este responsabilitatea programatorilor să proiecteze programe fără blocaj. Se poate face evitând condițiile de mai sus care sunt necesare pentru apariția unui impas

Definiția Starvation

Înfometarea poate fi definită ca atunci când o cerere de proces pentru o resursă și că resursa a fost folosită continuu de celelalte procese, apoi procesul solicitant se confruntă cu înfometarea. În caz de înfometare, un proces gata de a executa așteaptă ca CPU să aloce resursa. Dar procesul trebuie să aștepte la nesfârșit, deoarece celelalte procese blochează continuu resursele solicitate.

Problema înfometării apare în general în algoritmul de planificare a priorităților. În algoritmul de planificare a priorităților, procesul cu prioritate mai mare este întotdeauna alocat resursei, împiedicând procesul cu prioritate inferioară să primească resursa solicitată.

Îmbătrânire poate rezolva problema înfometării. Îmbătrânirea crește treptat prioritatea procesului care aștepta mult timp pentru resurse. Îmbătrânirea împiedică un proces cu prioritate scăzută să aștepte la nesfârșit o resursă.

  1. Într-un impas, niciunul dintre procese nu se realizează pentru executare, fiecare proces este blocat în așteptarea resurselor dobândite de celălalt proces. Pe de altă parte, înfometarea este o condiție în care procesele care au prioritate mai mare sunt autorizate să achiziționeze resursele în mod continuu, împiedicând procese cu prioritate scăzută să dobândească resurse care să conducă la blocarea nedeterminată a proceselor cu prioritate scăzută.
  2. Deadlock apare atunci când patru condiții Excluderea reciprocă, mențineți și așteptați, fără preeminție și așteptare circulară apare simultan. Cu toate acestea, înfometarea apare atunci când procesul prioritățile au fost puse în aplicare în timp ce alocați resurse sau există un sistem de gestionare necontrolat a resurselor în sistem.
  3. Deadlock este adesea numit cu numele așteptare circulară în timp ce înfometarea este numită Încuietoare trăită.
  4. În Deadlock, resursele sunt blocate de proces, în timp ce, în caz de înfometare, procesele sunt utilizate în mod continuu de procese cu priorități mari.
  5. Blocarea poate fi prevenită prin evitarea condițiilor precum excluderea reciprocă, Reținerea și așteptarea și așteptarea circulară și permițând preeminerea proceselor care dețin resurse pentru o lungă perioadă de timp. Pe de altă parte, Starvation poate fi prevenită prin îmbătrânire.

Concluzie:

Atât Deadlock, cât și Starvation întârzie executarea procesului blocând-o. Pe de o parte, când blocajul poate provoca înfometarea proceselor, iar pe de altă parte, înfometarea poate înlătura procesele.