Dødlås inn Operating System: Hva er, sirkulær vent (eksempler)
⚡ Smart oppsummering
Vranglås i et operativsystem oppstår når et sett med prosesser blokkeres fordi hver av dem inneholder en ressurs og venter på en annen som en annen prosess inneholder, noe som skaper en sirkulær kjede der ingen prosess kan fortsette.
Hva er Deadlock?
vranglås er en situasjon som oppstår i en operativsystem når en prosess går inn i en ventetilstand fordi en annen ventende prosess holder den etterspurte ressursen. Vranglås er et vanlig problem i flerprosessering, der flere prosesser deler en spesifikk type gjensidig utelukkende ressurs kjent som en myk lås eller programvarelås.
Når det oppstår en vranglås, kan ingen av de involverte prosessene fortsette, så det berørte arbeidet stopper inntil operativsystemet griper inn.
Eksempel på deadlock
- Et eksempel fra den virkelige verden ville være trafikk som bare går i én retning.
- Her regnes en bro som en ressurs.
- Så når det oppstår en fastlåst situasjon, kan den løses hvis én bil rygger (foregriper ressurser og ruller tilbake).
- Flere biler må kanskje sikkerhetskopieres hvis det oppstår en vranglåssituasjon.
- Så sult er mulig.
Eksempel på vranglås
Hva er Circular wait?
En prosess venter på en ressurs som holdes av en annen prosess, som også venter på en ressurs som holdes av en tredje prosess, og så videre. Dette fortsetter til den siste prosessen venter på en ressurs som holdes av den første prosessen. Dette skaper en sirkulær kjede.
For eksempel tildeles prosess A ressurs B mens den ber om ressurs A. På samme måte tildeles prosess B ressurs A mens den ber om ressurs B. Dette skaper en sirkulær venteløkke.
Eksempel på sirkulær ventetid
For eksempel har en datamaskin tre USB-stasjoner og tre prosesser. Hver av de tre prosessene inneholder én av USB-stasjonene. Så når hver prosess ber om en annen stasjon, havner de tre prosessene i en vranglåssituasjon, ettersom hver av dem venter på at en USB-stasjon skal frigjøres mens den fortsatt er i bruk. Dette resulterer i en sirkulær kjede.
Eksempel på sirkulær ventetid
Deadlock Detection i OS
En vranglås kan oppdages av ressursplanleggeren. En ressursplanlegger hjelper operativsystemet med å holde track av alle ressursene som er allokert til forskjellige prosesser. Når en vranglås oppdages, kan den løses ved å forutse ressurser, rulle tilbake en prosess eller avslutte en eller flere av de vranglåste prosessene.
Deadlock Prevention i OS
Det er viktig å forhindre en vranglås før den kan oppstå. Systemet sjekker hver transaksjon før den utføres for å sikre at den ikke fører til en vranglås. Selv en liten operasjon som kan forårsake en vranglås i fremtiden, får aldri lov til å utføres.
Forebygging av vranglåser er et sett med metoder for å sikre at minst én av de fire nødvendige betingelsene ikke kan oppstå.
Ingen innløsning
En ressurs kan bare frigjøres frivillig av prosessen som holder den, etter at prosessen har fullført oppgaven sin.
- Hvis en prosess som holder på noen ressurser ber om en annen ressurs som ikke umiddelbart kan allokeres til den, frigjøres alle ressursene.
- Forhåndsbestemte ressurser legges til i listen over ressurser som prosessen venter på.
- Prosessen startes på nytt bare når den kan gjenopprette de gamle ressursene så vel som de nye den ber om.
Gjensidig utelukkelse
Gjensidig eksklusjon er den fulle formen for Mutex. Det er en spesiell type binær kode. semafor som brukes til å kontrollere tilgang til en delt ressurs. Den inkluderer en prioritetsarvmekanisme for å unngå langvarige problemer med prioritetsinversjon og holder oppgaver med høyere prioritet blokkert i kortest mulig tid.
Delte ressurser som skrivebeskyttede filer fører aldri til vranglåser, men ressurser som skrivere og båndstasjoner trenger eksklusiv tilgang via én enkelt prosess.
Hold og vent
I denne tilstanden må prosesser stoppes fra å holde én eller flere ressurser samtidig som de venter på én eller flere andre.
Sirkulær vent
Denne metoden pålegger en total rekkefølge av alle ressurstyper. Sirkulær venteforebygging krever også at hver prosess ber om ressurser i en stigende rekkefølge av opplisting.
Deadlock Unngåelse Algorithms
Det er bedre å unngå en vranglås i stedet for å iverksette tiltak etter at den har oppstått. Unngåelse trenger ytterligere informasjon, for eksempel hvordan ressursene skal brukes. Unngåelse av vranglås er en nyttig modell der hver prosess deklarerer det maksimale antallet ressurser av hver type den kan trenge.
Unngåelse Algorithms
Algoritmen for å unngå vranglåser vurderer ressursallokeringstilstanden dynamisk, slik at en sirkulær ventesituasjon aldri kan oppstå.
For én enkelt forekomst av en ressurstype:
- Bruk en ressursallokeringsgraf.
- En syklus i grafen er nødvendig og tilstrekkelig for en vranglås.
For flere forekomster av en ressurstype:
- En syklus er nødvendig, men ikke tilstrekkelig for en vranglås.
- Bruke Bankerens algoritme.
Forskjellen mellom sult og dødlås
Her er noen viktige forskjeller mellom fastlåsthet og sult:
| vranglås | Sult |
|---|---|
| En vranglåssituasjon oppstår når en av prosessene blokkeres. | Sult er en situasjon der alle lavprioriterte prosesser blokkeres mens høyprioriterte prosesser kjøres. |
| Deadlock er en uendelig prosess. | Sult er en lang ventetid, men ikke en uendelig prosess. |
| Enhver fastlåst situasjon har alltid sult. | Enhver sultesituasjon har ikke nødvendigvis en fastlåst situasjon. |
| Veillåsing oppstår på grunn av gjensidig utelukkelse, hold og vent, ingen forkjøpsrett og sirkulær venting som oppstår samtidig. | Det skjer på grunn av ukontrollert prioritering og dårlig ressursforvaltning. |
Fordeler med Deadlock
Her er fordelene med å bruke metoden for håndtering av fastlåste situasjoner:
- Denne situasjonen fungerer bra for prosesser som utfører et enkelt aktivitetsutbrudd.
- Ingen forkjøpsrett er nødvendig for vranglås.
- Det er en praktisk metode når den brukes på ressurser hvis tilstand enkelt kan lagres og gjenopprettes.
- Det er mulig å håndheve via kontroller under kompilering.
- Det trenger ingen kjøretidsberegning, siden problemet løses i systemdesignet.
Ulemper med Deadlock
Her er ulempene med å bruke metoden for håndtering av fastlåste situasjoner:
- Det forsinker oppstart av prosesser.
- Prosessene må kjenne sine fremtidige ressursbehov på forhånd.
- Den forebygger oftere enn nødvendig.
- Den tillater ikke inkrementelle ressursforespørsler.
- Den har iboende forkjøpstap.



