Operativsystemet er den mest grundlæggende software, der kører på en computer. Det er ansvarligt for styring af computerens hukommelse og processer samt afskærmning af detaljerne om hardware fra de applikationsprogrammer, der bruger den. En computers operativsystem sikrer også rimelig allokering af ressourcer til brugere og programmer i modsætning til lige fordeling mellem processer. Et retfærdigt planlægningssystem gør det muligt for den ene proces at bruge CPU'en, mens den anden venter i køen. Som et resultat får hver tråd tilstrækkelig adgang til begrænsede ressourcer, der forhindrer de to mest almindelige betingelser, der ellers ville have forsinket processen: Deadlock og Starvation. Begge er relaterede begreber, hvor processerne ikke har adgang til ressourcerne. Denne artikel fremhæver nogle nøglepunkter, der sammenligner de to på forskellige fronter.
Deadlock er en betingelse, hvor et sæt tråde blokeres, fordi hver proces, der holder en ressource, forsøger at få adgang til nogle andre ressourcer, der er i besiddelse af en anden proces, der til sidst forhindrer en fair systemplanlægning. En dødvandsituation opstår, når følgende fire betingelser gælder: Gensidig udelukkelse betyder, at kun en proces kan få adgang til en ressource ad gangen; Ingen præferencebetingelse betyder, at en ressource kun kan frigives frivilligt ved processen, der holder ressourcen; Hold og vent betyder, at en proces, der indeholder ressourcer, kan anmode om yderligere ressourcer, der er indeholdt af andre processer og Cirkulær ventetid betyder, at to eller flere processer sidder fast i en cirkulær kæde, der venter på, at hver proces frigiver deres respektive ressourcer.
Sult er en tilstand, der opstår, når en proces går ind i ventetiden på ubestemt tid, da en lavprioritet proces aldrig får chancen for at få adgang til ressourcen på grund af en konstant strøm af højprioriterede processer, der får adgang til den samme ressource. Det er et ressourcestyringsproblem, fordi en proces nægtes adgang til den ressource, den kræver, og derved skubber processen ind i en ubestemt ventetid. Det sker, fordi den ressource, den kræver, aldrig tildeles til processen, der får processen til at sulte efter ressourcer, deraf navnet. Den bedste måde at undgå sult er at bruge ældningsteknikken, som gradvist øger prioriteten af processer, der er i ventetiden i lang tid for at sikre et retfærdigt planlægningssystem.
Både deadlock og sult er relaterede koncepter, der forhindrer en retfærdig systemplanlægning, hvor processerne blokeres for at få adgang til ressourcerne. Deadlock henviser, som navnet antyder, til en betingelse, hvor et sæt tråde eller processer blokeres, fordi hver proces venter på at erhverve en ressource, der er i besiddelse af en anden proces, hvilket resulterer i en deadlock-situation, hvor programmerne ophører med at fungere. Starvation udløses på den anden side af en deadlock, der får en proces til at fryse, fordi en lavprioriteret proces nægtes adgang til en ressource, der er allokeret til en høj prioritetsproces.
En deadlock henviser til en specifik tilstand, der opstår, når en tråd eller en proces går ind i en venteperiode, fordi den systemressource, den anmodede om, holdes af en anden proces, som igen venter på, at en anden proces frigiver sin ressource og dermed skaber en deadlock. Dette skyldes dårlig ressourceudnyttelse. Sult er en ubegrænset udsættelsesbetingelse, hvor en lavprioritet proces nægtes adgang til de ressourcer, den kræver, fordi ressourcerne allokeres til en anden højprioritet proces. Det er et ressourcestyringsproblem, der tvinger systemet til at allokere ressourcer til kun høj prioriterede processer.
Deadlock er den ultimative form for sult, der forårsages, når følgende fire forhold forekommer samtidig: Gensidig udelukkelse, ingen præference, hold & vent og cirkulær vent. En dødvandsbetingelse forekommer kun i systemer, hvor alle de fire betingelser er gyldige. Sult forekommer baseret på forskellige forhold, f.eks. Når der ikke er nok ressourcer til at gå rundt, og prioritering af processer begynder at blive lavere, eller når processer begynder at udlevere ressourcer til andre processer uden kontrol. Hvis en lavprioritet proces anmoder om en ressource, der er reserveret til processer med højeste prioritet, sulter processen for evigt. Sult opstår også, når ressourcer fordeles vilkårligt, hvilket får processer til at vente i længere tid.
Sult kan forhindres ved at bruge en ordentlig planlægningsalgoritme med prioriteringskø, der faktisk også bruger aldringsteknikken - en planlægningsteknik, der tilføjer aldringsfaktoren til prioriteringen af hver anmodning, hvilket betyder, at den øger prioritetsniveauet for processer med lav prioritet, der har ventet i lang tid. Også at give flere ressourcer til programmer bør undgå fortsat overbelastning af ressourcer. For at forhindre, at systemet går i en deadlock, skal processer nægtes adgang til en eller flere ressourcer, mens de samtidig venter på andre, og kun en proces skal have adgang til en ressource ad gangen..
Både dødvande og sult er relaterede koncepter i multiprocesserende operativsystemer eller distribuerede systemer, der får en eller flere tråde eller processer til at sidde fast i vente på de ressourcer, de har brug for. Deadlock er en situation, der opstår, når en eller flere processer anmoder om adgang til den samme ressource, der får processen til at fryse, mens sult forårsages af deadlock, der skubber processen til en ubestemt udsættelsestilstand, fordi processer nægtes adgang til en ressource, der er indeholdt af en høj prioritet proces og behov for at vente for evigt.