Operativsystemet er den mest grunnleggende programvaren som kjører på en datamaskin. Det er ansvarlig for å administrere datamaskinens minne og prosesser, samt å beskytte detaljene til maskinvaren fra applikasjonsprogrammene som bruker den. En datas operativsystem sikrer også rettferdig allokering av ressurser til brukere og programmer i motsetning til lik distribusjon mellom prosesser. Et rettferdig planleggingssystem tillater en prosess å bruke CPU mens den andre venter i køen. Som et resultat får hver tråd nok tilgang til begrensede ressurser som forhindrer de to mest vanlige forholdene som ville ha forsinket prosessen ellers: Deadlock og Sult. Begge er relaterte konsepter der prosessene ikke har tilgang til ressursene. Denne artikkelen fremhever noen viktige punkter som sammenligner de to på ulike fronter.
Deadlock er en tilstand der et sett med tråder er blokkert fordi hver prosess som inneholder en ressurs, prøver å få tilgang til noen andre ressurser som holdes av en annen prosess, noe som til slutt forhindrer en rettferdig systemplanlegging. En dødfallsituasjon oppstår når følgende fire tilstander er sanne: Gensidig utelukkelse betyr at kun én prosess kan få tilgang til en ressurs om gangen; Ingen forhåndsbetingelse betyr at en ressurs kun kan frigjøres frivillig av prosessen som holder ressursen; Hold og vent betyr at en prosessholdingsressurs kan be om ytterligere ressurser holdt av andre prosesser og; Sirkulær venting betyr at to eller flere prosesser sitter fast i en sirkelkjede som venter på at hver prosess frigjør sine respektive ressurser.
Sultning er en tilstand som oppstår når en prosess går inn i venteperioden på ubestemt tid som en lavprioriteringsprosess, får aldri muligheten til å få tilgang til ressursen på grunn av en konstant strøm av høyprioriterte prosesser som får tilgang til samme ressurs. Det er et ressurshåndteringsproblem, fordi en prosess blir nektet tilgang til ressursen den krever, og dermed presser prosessen inn i en ubestemt ventetid. Det skjer fordi ressursen det krever, aldri er tildelt prosessen som forårsaker prosessen å sulte på ressurser, derav navnet. Den beste måten å unngå sult er å bruke aldringsteknikken som gradvis øker prioriteten til prosesser som er i ventetiden i lang tid for å sikre et rettferdig planleggingssystem.
Både dødsfall og sult er relaterte begreper som hindrer en rettferdig systemplanlegging der prosessene er blokkert fra å få tilgang til ressursene. Deadlock, som navnet antyder, refererer til en tilstand der et sett med tråder eller prosesser er blokkert fordi hver prosess venter på å skaffe en ressurs som holdes av en annen prosess og derved resultere i en dødlåsssituasjon der programmene slutter å fungere. Sulten derimot utløses av en dødlås som forårsaker en prosess å fryse fordi en lavprioriteringsprosess blir nektet tilgang til en ressurs som er tilordnet en høy prioriteringsprosess.
En dødlås refererer til en bestemt tilstand som oppstår når en tråd eller en prosess går inn i ventetiden fordi systemressursen det etterspørres, holdes av en annen prosess, som igjen venter på en annen prosess for å frigjøre ressursen og derved skape en dødlås. Dette skyldes dårlig ressursutnyttelse. Sult er en ubestemt utsettelse betingelse hvor en lav prioritet prosess nektes tilgang til ressursene det krever fordi ressursene blir tildelt til en annen høy prioritet prosess. Det er et ressurshåndteringsproblem som tvinger systemet til å tildele ressurser til kun høyt prioriterte prosesser.
Deadlock er den ultimate form for sult som forårsakes når følgende fire forhold oppstår samtidig: Gensidig utestenging, ingen forutsetning, vent og vent, og sirkulær ventetid. En deadlock-tilstand oppstår bare i systemer hvor alle fire forholdene er sanne. Sultning skjer på grunnlag av forskjellige forhold, for eksempel når det ikke er nok ressurser til å gå rundt, og prosessprioriteten begynner å bli lavere eller når prosesser begynner å overføre ressurser til andre prosesser uten kontroll. Hvis en prosess med lav prioritet krever en ressurs som er reservert for høyest prioriterte prosesser, høres prosessen for alltid. Sultning skjer også når ressurser tildeles vilkårlig og forårsaker prosesser å vente på en lengre periode.
Sultning kan forebygges ved å bruke en skikkelig planleggingsalgoritme med prioritetskø, som faktisk også bruker aldringsteknikken - en planleggingsteknikk som legger aldringsfaktoren til prioritet i hver forespørsel, noe som betyr at det øker prioritetsnivået for lavprioriterte prosesser som har ventet i lang tid. Også å gi flere ressurser til programmer bør unngå fortsatt overbelastning av ressurser. For å forhindre at systemet går i en blindlock, må prosesser nektes tilgang til en eller flere ressurser samtidig som de venter på andre, og bare én prosess skal ha tilgang til en ressurs om gangen.
Både dødsfall og sult er relaterte begreper i fleroperasjonsoperativsystemer eller distribuerte systemer som forårsaker at en eller flere tråder eller prosesser sitter fast ved å vente på ressursene de trenger. Deadlock er en situasjon som oppstår når en eller flere prosesser krever tilgang til samme ressurs som forårsaker prosessen å fryse, mens sult er forårsaket av deadlock som skyver prosessen av til en ubestemt utsatt tilstand fordi prosesser nektes tilgang til en ressurs holdt av en høy prioritet prosess og må vente for alltid.