Jämförelsediagram
Grunder för jämförelse | Dödläge | Svält |
---|---|---|
Grundläggande | Dö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ånd | Fö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 namn | Cirkulär väntan. | Life. |
Medel | I 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örebyggande | Undvik ö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.
- Ö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
- 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.
- 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.
- Deadlock kallas ofta av namnet cirkulär väntan medan svältet heter Lived lock .
- I Deadlock blockeras resurserna genom processen medan processerna i svält används kontinuerligt av processer med höga prioriteringar.
- 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.