Operativsystemet är den mest grundläggande mjukvaran som körs på en dator. Det ansvarar för att hantera datorns minne och processer, samt att skydda detaljerna i hårdvaran från programprogrammen som använder den. En dators operativsystem säkerställer också rättvis fördelning av resurser till användare och program i motsats till lika fördelning mellan processer. Ett rättvist schemaläggningssystem tillåter en process att använda CPU-enheten medan den andra väntar i köen. Som ett resultat får varje tråd tillräcklig tillgång till begränsade resurser som förhindrar de två vanligaste förhållandena som skulle ha försenat processen annars: dödlås och svält. Båda är relaterade koncept där processerna inte har tillgång till resurserna. Denna artikel lyfter fram några viktiga punkter som jämför de två på olika fronter.
Dödläge är ett tillstånd där en uppsättning trådar blockeras, eftersom varje process som innehåller en resurs försöker komma åt några andra resurser som hålls av en annan process så att det förhindras en rättvis systemplanering. En deadlock-situation uppstår när följande fyra villkor är sanna: Ömsesidig uteslutning betyder att endast en process kan nå tillgång till en resurs åt gången. Inget förhandsvillkor innebär att en resurs endast kan frigöras frivilligt genom processen som håller resursen. Håll och vänta betyder att processhanteringsresurser kan begära ytterligare resurser som hålls av andra processer och; Cirkulär väntan innebär att två eller flera processer fastnar i en cirkelformad kedja som väntar på att varje process frigör respektive resurser.
Svältet är ett tillstånd som uppstår när en process går in i väntetiden på obestämd tid som en lågprioriterad process får aldrig chansen att få tillgång till resursen på grund av ett konstant flöde av högprioriterade processer med samma resurs. Det är ett resurshanteringsproblem eftersom en process nekas åtkomst till den resurs som den behöver och därigenom driver processen till en obestämd väntetid. Det händer eftersom resursen det kräver aldrig tilldelas processen som orsakar processen att svälta för resurser, därav namnet. Det bästa sättet att undvika svält är att använda åldrande tekniken som gradvis ökar prioriteten för processer som är under väntetiden under lång tid för att säkerställa ett rättvist schemaläggningssystem.
Både dödläge och svält är relaterade begrepp som förhindrar en rättvis systemplanering där processerna blockeras från att få tillgång till resurserna. Dödlås, som namnet antyder, avser ett tillstånd där en uppsättning trådar eller processer blockeras eftersom varje process väntar på att skaffa en resurs som hålls av en annan process och därigenom resulterar i en dödlägesituation där programmen upphör att fungera. Svältet å andra sidan utlöses av ett dödläge som orsakar en process att frysa eftersom en lågprioriterad process nekas åtkomst till en resurs som tilldelas en högprioriterad process.
Ett dödläge hänför sig till ett specifikt tillstånd som uppstår när en tråd eller en process går in i en väntetid, eftersom den systemresurs som den begärde hålls kvar av en annan process som i sin tur väntar på en annan process för att släppa sin resurs och därigenom skapa ett dödläge. Detta beror på dåligt resursutnyttjande. Hämning är en obestämd uppskjutningstillstånd där en lågprioriterad process nekas tillgång till de resurser som krävs eftersom resurserna tilldelas en annan högprioriteringsprocess. Det är ett resurshanteringsproblem som tvingar systemet att allokera resurser till endast högprioriterade processer.
Deadlock är den ultimata formen av svält som orsakas när följande fyra villkor uppträder samtidigt: Ömsesidig uteslutning, ingen förskott, håll och vänta och cirkulär väntan. Ett dödläge villkor uppstår endast i system där alla fyra förhållandena är sanna. Svält uppstår baserat på olika förhållanden, t.ex. när det inte finns tillräckligt med resurser att gå runt och processprioriteten börjar bli lägre eller när processer börjar överföra resurser till andra processer utan kontroll. Om en process med låg prioritet kräver en resurs som är reserverad för högsta prioritetsprocesser, sviter processen för alltid. Svält uppstår också när resurser allokeras godtyckligt och orsakar processer att vänta på en längre tid.
Hämning kan förebyggas genom att man använder en ordentlig schemaläggningsalgoritm med prioritetskö, som faktiskt också använder åldrande tekniken - en schemaläggningsteknik som lägger till åldringsfaktorn till prioritet för varje förfrågan, vilket innebär att den ökar prioritetsnivån för lågprioriterade processer som har väntats under en lång tid. Att tillhandahålla fler resurser till program bör också undvika fortsatt överbelastning av resurser. För att förhindra att systemet går in i ett dödläge, måste processer nekas åtkomst till en eller flera resurser samtidigt som man väntar på andra och endast en process ska få tillgång till en resurs i taget.
Både dödläge och svält är relaterade begrepp i operativsystem för multiprocessing eller distribuerade system som orsakar att en eller flera trådar eller processer fastnar i väntan på de resurser de behöver. Dödläge är en situation som uppstår när en eller flera processer begär tillgång till samma resurs som orsakar processen att frysa, medan svält orsakas av dödläge som skjuter processen bort till ett obestämt uppskjutande tillstånd eftersom processer nekas åtkomst till en resurs som innehas av en högprioriterad process och måste vänta för alltid.