Sistemul de operare este cel mai fundamental software care rulează pe un computer. Este responsabil pentru gestionarea memoriei și proceselor calculatorului, precum și pentru protejarea detaliilor hardware-ului de programele de aplicație care le utilizează. Sistemul de operare al unui computer asigură, de asemenea, alocarea echitabilă a resurselor pentru utilizatori și programe, spre deosebire de distribuția egală între procese. Un sistem de planificare corectă permite unui proces să utilizeze CPU, în timp ce celălalt așteaptă în coadă. În consecință, fiecare thread primește acces suficient pentru resurse limitate care împiedică cele două condiții cele mai frecvente care ar fi întârziat procesul altfel: Deadlock și Starvation. Ambele sunt concepte înrudite în care procesele nu au acces la resurse. Acest articol evidențiază unele puncte cheie care le compară pe diferite fronturi.
Blocajul este o condiție în care un set de fire sunt blocate deoarece fiecare proces care deține o resursă încearcă să acceseze alte resurse care sunt deținute de un alt proces, eventual împiedicând o planificare corectă a sistemului. O situație de blocare apare atunci când următoarele patru condiții sunt valabile: Excluderea reciprocă înseamnă că un singur proces poate accesa o resursă la un moment dat; Nicio condiție de preemțiune înseamnă că o resursă poate fi eliberată numai în mod voluntar de procesul care deține resursa; Hold & wait înseamnă că un proces care deține resurse poate solicita resurse suplimentare deținute de alte procese și; Circulara așteaptă înseamnă că două sau mai multe procese sunt blocate într-un lanț circular așteptând ca fiecare proces să își elibereze resursele respective.
Înfometarea este o condiție care apare atunci când un proces intră în perioada de așteptare pe o perioadă nedeterminată, deoarece procesul de prioritate scăzută nu primește niciodată șansa de a accesa resursa datorită fluxului constant de procese cu prioritate ridicată care accesează aceeași resursă. Este o problemă de gestionare a resurselor, deoarece un proces este refuzat accesului la resursele pe care le solicită, împingând astfel procesul într-o perioadă de așteptare nedeterminată. Se întâmplă deoarece resursa pe care o cere nu este alocată niciodată procesului care determină procesul să moară pentru resurse, de unde și numele. Cea mai bună modalitate de a evita foametea este folosirea tehnicii de îmbătrânire care crește treptat prioritatea proceselor care se află în perioada de așteptare pentru o lungă perioadă de timp, pentru a asigura un sistem corect de programare.
Atât impasul cât și foametea sunt concepte înrudite care împiedică o planificare corectă a sistemului în care procesele sunt blocate de la a avea acces la resurse. Blocajul, așa cum sugerează și numele, se referă la o condiție în care un set de fire sau procese este blocat deoarece fiecare proces așteaptă să obțină o resursă care este deținută de un alt proces, rezultând astfel o situație de blocaj în care programele încetează să funcționeze. Pe de altă parte, foametea este declanșată de un blocaj care determină înghețarea unui proces, deoarece unui proces cu prioritate scăzută i se refuză accesul la o resursă alocată unui proces cu prioritate ridicată.
Un blocaj se referă la o condiție specifică care apare atunci când un fir sau un proces intră într-o perioadă de așteptare, deoarece resursa de sistem pe care o solicită este deținută de un alt proces, care, la rândul său, așteaptă ca alt proces să-și elibereze resursele, creând astfel un blocaj. Acest lucru este cauzat de utilizarea redusă a resurselor. Înfometarea este o condiție de amânare nedefinită în care un proces cu prioritate scăzută este refuzat accesul la resursele pe care le necesită deoarece resursele sunt alocate unui alt proces de prioritate ridicată. Este o problemă de gestionare a resurselor care obligă sistemul să aloce resurse doar proceselor cu prioritate ridicată.
Blocajul este forma finală de foame care este cauzată atunci când următoarele patru condiții se produc în mod simultan: Excludere reciprocă, Fără Preempțiune, Așteptare și Așteptare și Circulară Așteptați. O condiție de blocare apare numai în sistemele în care toate cele patru condiții sunt adevărate. Înfometarea are loc pe baza unor condiții diferite, cum ar fi atunci când nu există suficiente resurse pentru a merge și prioritatea proceselor începe să devină mai mică sau când procesele încep să ducă resursele altor procese fără control. Dacă un proces cu prioritate redusă solicită o resursă rezervată pentru procesele cu cea mai mare prioritate, procesul se stinge pentru totdeauna. Înfometarea apare și atunci când resursele sunt alocate în mod arbitrar, determinând procesele să aștepte o perioadă mai lungă de timp.
Îngăduirea poate fi împiedicată prin utilizarea unui algoritm de programare adecvat, cu coada priorității care utilizează, de fapt, tehnica de îmbătrânire - o tehnică de planificare care adaugă factorul de îmbătrânire priorității fiecărei solicitări, ceea ce înseamnă că crește nivelul de prioritate al proceselor cu prioritate scăzută care au fost în așteptare pentru mult timp. De asemenea, furnizarea mai multor resurse la programe ar trebui să evite congestia continuă a resurselor. Pentru a împiedica sistemul să intre într-un blocaj, proceselor trebuie să li se refuze accesul la una sau mai multe resurse, în timp ce aceștia așteaptă în același timp pe alții și un singur proces ar trebui să aibă acces la o resursă la un moment dat.
Atât impasul, cât și foametea sunt concepte legate de sistemele de operare multiprocesare sau sistemele distribuite care provoacă blocarea unuia sau mai multor fire sau procese în așteptarea resurselor de care au nevoie. Blocajul este o situație care apare atunci când unul sau mai multe procese solicită accesul la aceeași resursă, determinând înghețarea procesului, în timp ce foametea este cauzată de un blocaj care împinge procesul la o stare de amânare nedeterminată, deoarece proceselor le este interzis accesul la o resursă deținută de proces prioritar și trebuie să așteptați pentru totdeauna.