Den største forskel mellem dødvande og sult er årsag og virkning forholdet mellem dem; det er dødvande, der forårsager sult. En anden interessant forskel mellem deadlock og sult er, at deadlock er et problem, mens sult nogle gange kan hjælpe med at komme ud fra en dødvande. I computerverdenen, når der skrives et computerprogram, vil der være mere end en proces / tråd, der samtidigt kører den ene efter den anden for at udføre den krævede service til programmet. Derfor skal programmereren være nødt til at sikre, at alle processer / tråde modtager eller får tilstrækkelig adgang til ressourcer, som de har brug for, for at have et retfærdigt system. Hvis ikke, vil der være en dødvande, og det vil føre til en sult senere. Generelt indeholder et retfærdigt system ingen deadlocks eller sult. Dødlåse og sult forekommer hovedsageligt, når mange tråde konkurrerer om begrænsede ressourcer.
En dødvande er en tilstand, der opstår, når to tråde eller processer venter på hinanden for at afslutte opgaven. De vil kun hænge op, men aldrig stoppe eller afslutte deres opgave. Inden for datalogi kan deadlocks ses overalt. I en transaktionsdatabase, når to processer hver inden for sin egen transaktion opdaterer de samme to rækker af information, men i modsat rækkefølge, vil der medføre en dødvande. Ved samtidig programmering kan der forekomme en deadlock, når to konkurrerende handlinger vil vente på hinanden til at gå videre. I telekommunikationssystemer kan en deadlock opstå på grund af tab eller korruption af signaler.
På nuværende tidspunkt er deadlock et af de største problemer inden for multiprocesseringssystemer og parallel computing. Som en løsning kaldes et låsesystem processynkronisering implementeres både til software og hardware.
Fra medicinsk videnskabsordbog er sult et resultat af alvorlig eller total mangel på næringsstoffer, der er nødvendige for at opretholde livet. Tilsvarende er det inden for datalogi sult et problem, der opstår når flere tråde eller processer venter på den samme ressource, der kaldes en deadlock.
For at komme ud fra en deadlock, skal en af processerne eller trådene skulle give op eller rulle tilbage, så den anden tråd eller proces kan bruge ressourcen. Hvis dette kontinuerligt sker, og den samme proces eller tråd er nødt til at give op eller rulle tilbage hver gang, mens man lader andre processer eller tråde til at bruge ressourcen, vil den valgte proces eller tråd, der rulles tilbage, gennemgå en situation, der kaldes sult. Derfor, for at komme ud fra en dødvande er sult en af løsningen. Derfor kaldes der undertiden sult en slags husdyr. Når der er mange processer eller tråde med høj prioritet, vil en proces eller tråd med lavere prioritet altid sulte i en dødlås.
Der kan være mange sult som f.eks sulter på ressourcer og sulter på CPU. Der er mange almindelige eksempler på sult. De er Læsere-forfatterproblemer og spisefilosofernes problem, som er mere berømt. Der er fem tavse filosoffer, der sidder ved et rundt bord med skåle med spaghetti. Gafler placeres mellem hvert par tilstødende filosoffer. Hver filosof skal skiftevis tænke og spise. En filosof kan imidlertid kun spise spaghetti, når han har både venstre og højre gafler.
"Spisefilosofene"
• I deadlock venter de to tråde eller processer på hinanden, og begge fortsætter ikke fremad.
• I sult, når to eller flere tråde eller processer venter på den samme ressource, vil den ene rulle tilbage og lade de andre bruge ressourcen først og derefter den sultende tråd eller proces vil prøve igen. Derfor fortsætter alle tråde eller processer fremad.
• I en deadlock venter både tråde / processer med høj prioritet såvel som tråde / processer med lav prioritet uendeligt på hinanden. Det stopper aldrig.
• Men i sult venter eller rulles de tilbage med høj prioritet, men dem med høj prioritet fortsætter.
• En deadlock er en cirkulær venter.
• En sult er en slags husdyr og hjælper undertiden med at komme ud fra en dødvande.
• En dødvande forårsager sult, men sult forårsager ikke en dødvande.
• En deadlock vil opstå på grund af gensidig udelukkelse, hold og vente, ingen undtagelse eller cirkulær venting.
• Sult opstår på grund af mangel på ressourcer, ukontrolleret styring af ressourcer og procesprioriteter.
Resumé:
Deadlock og sult er nogle af de problemer, der opstår på grund af dataløb og løbebetingelser, der opstår under programmering samt implementering af hardware. I en dødlås vil to tråde uendeligt vente på hinanden uden at udføre, mens i en sult, vil den ene tråd rulle tilbage og lade den anden tråd bruge ressourcerne. En dødvande vil forårsage sult, mens sult hjælper en tråd til at komme ud fra en dødvande.
Billeder høflighed: