Forskel mellem dødsangreb og sult | Deadlock vs Starvation
Deadlock vs Starvation
Den største forskel mellem dødsulykke og sult er årsag og virkning forholdet mellem dem; det er dødvande, der forårsager sult. En anden interessant forskel mellem dødsangreb og sult er, at dødvandet er et problem, mens sult kan nogle gange hjælpe med at komme ud af en dødgang. I computerverdenen vil der ved at skrive et computerprogram være mere end en proces / tråd, der samtidigt kører efter hinanden for at opfylde den nødvendige service til programmet. Derfor skal programmøren for at sikre et retfærdigt system sikre sig, at alle processer / tråde modtager eller får tilstrækkelig adgang til ressourcer, som de har brug for. Hvis ikke, vil der være en dødlås, og det vil føre til en sult senere. I almindelighed indeholder et retfærdigt system ikke nogen dødsfald eller sult. Deadlocks og sult vil forekomme hovedsageligt, når mange tråde konkurrerer om begrænsede ressourcer.
Hvad er Deadlock?
En dødlås er en betingelse, der opstår, når to tråde eller processer venter på hinanden for at fuldføre opgaven . De vil kun hænge op, men aldrig stoppe eller afslutte deres opgave. I datalogi kan deadlocks ses overalt. I en transaktionsdatabase, når to behandler hver i sin egen transaktionsopdatering, de samme to rækker af oplysninger, men i modsat rækkefølge, vil det medføre en deadlock. Ved samtidig programmering kan der opstå en deadlock, når to konkurrerende handlinger vil vente på hinanden at fortsætte fremad. I telesystemer kan en dødlås ske på grund af tab eller korruption af signaler.
På nuværende tidspunkt er deadlock et af hovedproblemerne i multiprocessing systemer og parallel computing. Som en løsning implementeres et låsesystem kaldet processynkronisering for såvel software som hardware.
Hvad er sult?
I lægevidenskabens ordbog er sulten et resultat af alvorlig eller total mangel på næringsstoffer, der er nødvendige for vedligeholdelsen af livet. Ligeledes er det i computervidenskab et problem, der opstår, når flere tråde eller processer venter på samme ressource, som kaldes en deadlock .
For at komme ud af en dødlås skal en af processerne eller tråderne give op eller rulle tilbage, så den anden tråd eller proces kan bruge ressourcen. Hvis dette hele tiden sker, og den samme proces eller tråd skal give op eller rulle tilbage hver gang, mens andre processer eller tråde kan bruges til ressourcen, vil den valgte proces eller tråd, som rulles tilbage, blive udsat for en situation, der kaldes sult.Derfor for at komme ud af en dødvande er sulten en af løsningerne . Derfor kaldes sommetider sult en slags livlock . Når der er mange højt prioriterede processer eller tråde, vil en lavere prioriteringsproces eller tråd altid sulte i en dødlås.
Der kan være mange sultninger som sultende på ressourcer og sultende på CPU . Der er mange almindelige eksempler på sult. De er problematik for læsere og forfattere og spiseprofiler, som er mere berømt. Der er fem stille filosofer, der sidder ved et rundt bord med skål spaghetti. Gafler er placeret mellem hvert par tilstødende filosoffer. Hver filosof skal tænke og spise. En filosof kan dog kun spise spaghetti, når han har både venstre og højre gafler.
The "Dining Philosophers"
Hvad er forskellen mellem dødsløshed og sult?
• Proces:
• I deadlock venter de to tråde eller processer på hinanden, og begge går ikke fremad.
• I tilfælde af sult, når to eller flere tråde eller processer venter på samme ressource, ruller man tilbage og lad de andre bruge ressourcen først og næste gang vil den sultende tråd eller proces forsøge igen. Derfor vil alle tråde eller processer alligevel fortsætte fremad.
• Rolling Back:
• I en deadlock vil begge højt prioriterede tråde / processer samt lavt prioriterede tråde / processer vente på hinanden uendeligt. Det stopper aldrig.
• Men i en sult vil de lave prioriteter vente eller rulle tilbage, men højt prioriterede vil fortsætte.
• Vent eller lås:
• En dødlås er en cirkulær venter.
• En sult er en slags livlock og hjælper nogle gange med at komme ud af en dødlås.
• Deadlock og Sultning:
• En dræbte forårsager sult, men sult forårsager ikke en dødlås.
• Årsager:
• Der vil opstå et dødløb på grund af gensidig udelukkelse, hold og vent, ingen præfiks eller cirkulær venter.
• Sultning opstår på grund af mangel på ressourcer, ukontrolleret ressourceforvaltning og procesprioriteter.
Sammendrag:
Deadlock vs Sultning
Deadlock og sult er nogle af de problemer, der opstår som følge af datahall og raceforhold, der opstår under programmering samt implementering af hardware. I en deadlock vil to tråde uendeligt vente på hinanden uden at udføre, mens en trøje i en sult vil rulle tilbage og lade den anden tråd bruge ressourcerne. En dødning vil forårsage sult, mens sult vil hjælpe en tråd for at komme ud af en dødgang.
Billeder Courtesy:
- Computer af Steve Jurvetson fra Menlo Park, USA (CC BY 2. 0)
- "Dining Philosophers" af Bdesham (CC BY-SA 3. 0)