Deadlock vs Starvation
Den største forskjellen mellom dødlås og sult er årsak-virkningsforholdet mellom dem; det er dødlås som forårsaker sult. En annen interessant forskjell mellom dødlås og sult er at dødlås er et problem mens sult noen ganger kan bidra til å komme seg ut av en dødlås. I dataverdenen, når du skriver et dataprogram, vil det være mer enn én prosess/tråd som vil kjøre etter hverandre samtidig for å oppfylle den nødvendige tjenesten til programmet. Derfor, for å ha et rettferdig system, bør programmereren sørge for at alle prosessene/trådene vil motta eller få nok tilgang til ressurser de trenger. Hvis ikke, vil det bli en fastlåsning, og det vil føre til sult senere. Generelt sett inneholder ikke et rettferdig system noen vranglås eller sult. Dødlåser og sult vil hovedsakelig oppstå når mange tråder konkurrerer om begrensede ressurser.
Hva er deadlock?
En dødlås er en tilstand som oppstår når to tråder eller prosesser venter på at hverandre skal fullføre oppgaven. De vil bare legge på, men aldri stoppe eller fullføre oppgaven. Innen datavitenskap kan man se vranglås over alt. I en transaksjonsdatabase, når to prosesser i hver sin transaksjon oppdaterer de samme to radene med informasjon, men i motsatt rekkefølge, vil det føre til en dødlås. Ved samtidig programmering kan det oppstå en dødlås når to konkurrerende handlinger venter på at hverandre skal fortsette fremover. I telekommunikasjonssystemer kan en dødlås oppstå på grunn av tap eller korrupsjon av signaler.
For øyeblikket er dødlås et av hovedproblemene i multiprosesssystemer og parallell databehandling. Som en løsning er et låsesystem k alt prosesssynkronisering implementert for programvare så vel som maskinvare.
Hva er sult?
Fra medisinsk vitenskaps ordbok er sult et resultat av alvorlig eller total mangel på næringsstoffer som er nødvendig for å opprettholde livet. På samme måte er sult i informatikk et problem som oppstår når flere tråder eller prosesser venter på den samme ressursen, som kalles en deadlock.
For å komme seg ut av en fastlåsning, bør en av prosessene eller trådene måtte gi opp eller rulle tilbake slik at den andre tråden eller prosessen kan bruke ressursen. Hvis dette skjer kontinuerlig og den samme prosessen eller tråden må gi opp eller rulle tilbake hver gang mens de lar andre prosesser eller tråder bruke ressursen, vil den valgte prosessen eller tråden, som rullet tilbake, gjennomgå en situasjon som kalles sult. Derfor, for å komme seg ut av en fastlåsning, er sult en av løsningene. Derfor kalles sult noen ganger for en slags livelock. Når det er mange prosesser eller tråder med høy prioritet, vil en prosess eller tråd med lavere prioritet alltid sulte i en dødlås.
Det kan være mange sult som å sulte på ressurser og sulte på CPU. Det er mange vanlige eksempler på sult. De er Readers-writers problem og spisefilosofers problem, som er mer kjent. Det er fem tause filosofer som sitter ved et rundt bord med skåler med spaghetti. Gafler er plassert mellom hvert par av tilstøtende filosofer. Hver filosof må vekselvis tenke og spise. En filosof kan imidlertid bare spise spaghetti når han har både venstre og høyre gafler.
«Spisefilosofene»
Hva er forskjellen mellom Deadlock og Starvation?
Prosess:
• I fastlåst tilstand vil de to trådene eller prosessene vente på hverandre, og begge fortsetter ikke fremover.
• I sult, når to eller flere tråder eller prosesser venter på samme ressurs, vil en rulle tilbake og la de andre bruke ressursen først, og deretter vil den sultende tråden eller prosessen prøve igjen. Derfor vil alle tråder eller prosesser uansett fortsette fremover.
Rolling Back:
• I en dødlås vil både høyprioriterte tråder/prosesser, samt lavprioriterte tråder/prosesser, vente på hverandre i det uendelige. Det tar aldri slutt.
• Men i en sult, vil lavprioriterte vente eller rulle tilbake, men høyprioriterte vil fortsette.
Venter eller lås:
• En vranglås er en sirkulær venting.
• En utsulting er en slags "livelock" og hjelper noen ganger å komme seg ut av en dødlås.
Deadlock and Starvation:
• En fastlåsning forårsaker sult, men sult forårsaker ikke en fastlåsning.
Årsaker:
• En vranglås vil oppstå på grunn av gjensidig utestenging, hold og vent, ingen forkjøpsrett eller sirkulær venting.
• Sult oppstår på grunn av knapphet på ressurser, ukontrollert forv altning av ressurser og prosessprioriteringer.
Sammendrag:
Deadlock vs. Starvation
Vanning og sult er noen av problemene som oppstår på grunn av dataløp og løpsforhold som oppstår under programmering samt implementering av maskinvare. I en vranglås vil to tråder uendelig vente på hverandre uten å utføre mens, i en sult, vil den ene tråden rulle tilbake og la den andre tråden bruke ressursene. En dødlås vil føre til sult, mens sult vil hjelpe en tråd med å komme seg ut av en dødlås.