Rekommenderas, 2024

Redaktionen

Skillnad mellan dödsfall och svält i OS

Dödlås och svält är båda de förhållanden där processerna som begär en resurs har försenats under en lång tid. Även om dödläge och svält båda skiljer sig från varandra i många aspekter. Dödläge är ett tillstånd där ingen process fortsätter för utförandet, och varje väntar på resurser som har förvärvats av de andra processerna. Å andra sidan, i svält, bearbeta med höga prioriteringar använder kontinuerligt resurser som förhindrar lågprioriterad process för att förvärva resurserna. Låt oss diskutera några fler skillnader mellan dödläge och svält med hjälp av jämförelsetabellen som visas nedan.

Jämförelsediagram

Grunder för jämförelseDödlägeSvält
GrundläggandeDödläge är där ingen process fortsätter och blir blockerad.Svält är där processer med låg prioritet blir blockerad, och processen med hög prioritet fortsätter.
Uppstår tillståndFörekomsten av ömsesidigt uteslutande, håll och vänta, Ingen förbehåll och cirkulär vänta samtidigt.Genomförande av prioriteringar, okontrollerad resurshantering.
Annat namnCirkulär väntan.Life.
MedelI dödläge blockeras begärda resurser av de andra processerna.I svält används de begärda resurserna kontinuerligt med högprioriterade processer.
FörebyggandeUndvik ömsesidig uteslutning, håll och vänta, och cirkulär vänta och tillåta förhandsavgörande.Aging.

Definition av Deadlock

Deadlock är en situation där de flera processerna i CPU konkurrerar om det begränsade antalet resurser som finns inom CPU. Här har varje process en resurs och väntar på att förvärva en resurs som hålls av någon annan process. Alla processer väntar på resurser på ett cirkulärt sätt. I bilden nedan kan du se att Process P1 har förvärvat resurs R2 som begärs av process P2 och Process P1 begär efter resurs R1 som åter hålls av R2. Så processen P1 och P2 bildar ett dödläge.

Dödlås är ett vanligt problem i multiprocessing operativsystem, distribuerade system, och även i parallella datorsystem. Det finns fyra villkor som måste uppstå samtidigt för att höja villkoret för dödläge, som är ömsesidigt uteslutande, hålla och vänta, ingen förskott och cirkulär vänta.

  • Ömsesidig uteslutning: Endast en process i taget kan använda en resurs om andra processer begär samma resurs, det måste vänta tills processen använder resurser släpper den.
  • Håll och vänta: En process måste innehålla en resurs och vänta på att skaffa en annan resurs som hålls av någon annan process.
  • Ingen förhandsvisning: Processen som håller resurserna kan inte föregås. Processen som håller resursen måste frigöra resursen frivilligt när den har slutfört sin uppgift.
  • Cirkulär väntan: Processen måste vänta på resurser på ett cirkulärt sätt. Antag att vi har tre processer {P0, P1, P2}. P0 måste vänta på resursen som hålls av P1; P1 måste vänta med att förvärva resursen som hålls av process P2, och P2 måste vänta för att förvärva processen som hålls av P0.

Även om det finns några program som kan upptäcka de program som kan bli dödläge. Men operativsystemet är aldrig ansvarigt för att förhindra deadlocks. Det är programmarnas ansvar att utforma program för dödlägesfria program. Det kan göras genom att undvika ovanstående villkor som är nödvändiga för dödläge förekomst

Definition av svält

Svältet kan definieras som när en processbegäran om en resurs och den resursen kontinuerligt har använts av de andra processerna, så är den begärande processen utsatt för svält. I svält väntar en process som är klar för att exekvera CPU att allokera resursen. Men processen måste vänta på obestämd tid eftersom de andra processerna kontinuerligt blockerar de begärda resurserna.

Problemet med svält uppträder vanligtvis i prioriterad planeringsalgoritm . I prioritetsplaneringsalgoritmen tilldelas processen med högre prioritet alltid resursen, vilket förhindrar att den lägre prioriteringsprocessen erhåller den begärda resursen.

Åldrande kan lösa problemet med svält. Åldrande ökar gradvis prioriteten i processen som väntat länge efter resurserna. Åldrande förhindrar en process med låg prioritet att vänta i obestämd tid för en resurs.

Viktiga skillnader mellan dödsfall och svält i OS

  1. I ett dödläge fortsätter ingen av processerna för utförande, varje process blir blockerad och väntar på de resurser som förvärvats av den andra processen. Å andra sidan är svält ett tillstånd där processerna som har högre prioritet tillåts att förvärva resurserna kontinuerligt genom att förhindra att de lågprioriterade processerna förvärvar resurser som resulterar i obestämd blockering av lågprioriterade processer.
  2. Dödläge uppstår när fyra villkor ömsesidig uteslutning, håll och vänta, ingen förhandsavgörande och cirkulär väntetid uppstår samtidigt. Men svält inträffar när processprioriteringar har verkställts vid tilldelning av resurser, eller om det finns okontrollerad resurshantering i systemet.
  3. Deadlock kallas ofta av namnet cirkulär väntan medan svältet heter Lived lock .
  4. I Deadlock blockeras resurserna genom processen medan processerna i svält används kontinuerligt av processer med höga prioriteringar.
  5. Dödlås kan förhindras genom att man undviker villkoren som ömsesidigt uteslutande, håll och vänta, och cirkulär väntan och genom att tillåta förlossningen av de processer som håller resurser under lång tid. Å andra sidan kan svält förebyggas genom åldrande .

Slutsats:

Både Deadlock och Starvation försenar processen genom att blockera det. Å ena sidan där dödläget kan orsaka processer att svälta, och å andra sidan kan svältet få processerna ur dödläget.

Top