Deadlock vs sult
Hovedforskjellen mellom fastlåst og sult er årsak og virkning forholdet mellom dem; det er fastlåst som forårsaker sult. En annen interessant forskjell mellom fastlåst og sult er at fastlåst er et problem mens sult noen ganger kan bidra til å komme seg ut av en fastlåst tilstand. I datamaskinverdenen vil det være mer enn en prosess / tråd som samtidig kjøres etter hverandre for å oppfylle den nødvendige tjenesten til programmet når du skriver et dataprogram. Derfor, for å ha et rettferdig system, bør programmereren sørge for at alle prosesser / tråder vil motta eller få nok tilgang til ressurser de trenger. Hvis ikke, vil det være en fastlåst situasjon, og det vil føre til sult senere. Generelt inneholder et rettferdig system ingen fastlåsning eller sult. Blokkeringer og sult vil forekomme hovedsakelig når mange tråder konkurrerer om begrensede ressurser.
Hva er Deadlock?
En fastlåst tilstand 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. I datavitenskap kan man se blokkeringer overalt. I en transaksjonsdatabase, når to prosesser hver innen sin egen transaksjon oppdaterer de samme to rader med informasjon, men i motsatt rekkefølge, vil det føre til en fastlåst situasjon. I samtidig programmering kan det oppstå en fastlåst situasjon når to konkurrerende handlinger venter på at hverandre skal fortsette. I telekommunikasjonssystemer kan en fastlåst situasjon skje på grunn av tap eller korrupsjon av signaler.
For øyeblikket er fastlåst et av hovedproblemene i flerbehandlingssystemer og parallell databehandling. Som en løsning implementeres et låsesystem kalt prosesssynkronisering for både programvare og maskinvare.
Hva er sult?
Fra ordboken for medisinsk vitenskap er sult et resultat av alvorlig eller total mangel på næringsstoffer som er nødvendige for å opprettholde livet. Tilsvarende i datalogi er sult et problem som oppstår når flere tråder eller prosesser venter på den samme ressursen, som kalles en fastlåst tilstand.
For å komme seg ut av en fastlåst tilstand, 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 kontinuerlig skjer, og den samme prosessen eller tråden må gi opp eller rulle tilbake hver gang mens du lar andre prosesser eller tråder bruke ressursen, vil den valgte prosessen eller tråden, som rulles tilbake, gjennomgå en situasjon som kalles sult. Derfor er sult en av løsningene for å komme seg ut av en fastlåst situasjon. Derfor kalles sult noen ganger for en slags husdyr. Når det er mange prosesser eller tråder med høy prioritet, vil en prosess med lavere prioritet eller tråd alltid sulte i en fastlåst tilstand.
Det kan være mange sult som sult på ressurser og sult på CPU. Det er mange vanlige eksempler på sult. De er problem med lesere og forfattere og serveringsfilosofers problem, som er mer kjent. Det er fem stille filosofer som sitter ved et rundt bord med boller med spaghetti. Gafler plasseres mellom hvert par 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.
“Dining Philosophers”
Hva er forskjellen mellom dødlås og sult?
• Prosess:
• I fastlåst tilstand vil de to trådene eller prosessene vente på hverandre, og begge går 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 prøver den sultende tråden eller prosessen igjen. Derfor vil alle tråder eller prosesser uansett fortsette.
• Ruller tilbake:
• I en fastlåst tilstand vil både tråder / prosesser med høy prioritet, så vel som tråder / prosesser med lav prioritet, vente på hverandre uendelig. Det tar aldri slutt.
• Men i sult vil lavprioriterte vente eller vende tilbake, men de med høy prioritet vil fortsette.
• Venter eller låser:
• En fastlåst er en sirkulær venting.
• En sult er en slags livelock og hjelper noen ganger å komme seg ut av en fastlåst situasjon.
• Dødlås og sult:
• En fastlåst forårsaker sult, men sult forårsaker ikke fastlåst tilstand.
• Årsaker:
• En fastlåst situasjon vil oppstå på grunn av gjensidig utestenging, vent og vent, ingen innløsning eller sirkulær venting.
• Sult oppstår på grunn av knapphet på ressurser, ukontrollert forvaltning av ressurser og prosessprioriteringer.
Sammendrag:
Deadlock vs. sult
Dødlås 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 fastlåst tilstand 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 fastlåst vil forårsake sult, mens sult vil hjelpe en tråd å komme seg ut av en fastlåst tilstand.
Bilder med tillatelse:
- Datamaskin av Steve Jurvetson fra Menlo Park, USA (CC BY 2.0)
- “Dining Philosophers” av Bdesham (CC BY-SA 3.0)