Dødlås inn Operating System: Hva er, sirkulær vent (eksempler)

Hva er Deadlock?

vranglås er en situasjon som oppstår i OS når en prosess går inn i en ventetilstand fordi en annen venteprosess holder den etterspurte ressursen. Deadlock er et vanlig problem i multi-prosessering der flere prosesser deler en spesifikk type gjensidig utelukkende ressurs kjent som en myk lås eller programvare.

Eksempel på deadlock

  • Et eksempel fra den virkelige verden vil være trafikk, som bare går i én retning.
  • Her regnes en bro som en ressurs.
  • Så når deadlock oppstår, kan det enkelt løses hvis én bil sikkerhetskopierer (foregripe ressurser og tilbakerulling).
  • Flere biler må kanskje sikkerhetskopieres hvis det oppstår en vranglåssituasjon.
  • Så sult er mulig.
Eksempel på deadlock
Eksempel på vranglås

Hva er Circular wait?

En prosess venter på ressursen, som holdes av den andre prosessen, som også venter på ressursen som holdes av den tredje prosessen osv. Dette vil fortsette 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 ettersom den ber om ressurs A. På samme måte blir prosess B tildelt ressurs A, og den ber om ressurs B. Dette skaper en sirkulær ventesløyfe.

Eksempel på sirkulær ventetid

For eksempel har en datamaskin tre USB-stasjoner og tre prosesser. Hver av de tre prosessene kan holde en av USB-stasjonene. Så når hver prosess ber om en annen stasjon, vil de tre prosessene ha en fastlåst situasjon ettersom hver prosess vil vente på at USB-stasjonen skal utgis, som for øyeblikket er i bruk. Dette vil resultere i en sirkulær kjede.

Eksempel på sirkulær ventetid

Eksempel på sirkulær ventetid

Deadlock Detection i OS

En deadlock-forekomst kan oppdages av ressursplanleggeren. En ressursplanlegger hjelper OS med å holde styr på alle ressursene som er allokert til forskjellige prosesser. Så når en dødlås oppdages, kan den løses ved å bruke metodene nedenfor:

Deadlock Prevention i OS

Det er viktig å forhindre en fastlåsning før den kan oppstå. Systemet sjekker hver transaksjon før den utføres for å forsikre seg om at den ikke fører til dødlåssituasjoner. Slik at selv en liten endring oppstår død at en operasjon som kan føre til Deadlock i fremtiden det heller aldri tillot prosessen å utføre.

Det er et sett med metoder for å sikre at minst én av betingelsene ikke kan holde.

Ingen forebyggende handling

No Preemption - En ressurs kan frigis bare frivillig av prosessen som holder den etter at prosessen har fullført oppgaven sin

  • Hvis en prosess som inneholder noen ressurser ber om en annen ressurs som ikke umiddelbart kan allokeres til den, i den situasjonen vil alle ressursene bli frigitt.
  • Forhåndsbaserte ressurser krever listen over ressurser for en prosess som venter.
  • Prosessen vil bare startes på nytt hvis den kan gjenvinne sin gamle ressurs og en ny som den ber om.
  • Hvis prosessen ber om en annen ressurs, når den er tilgjengelig, ble den gitt til forespørselsprosessen.
  • Hvis den holdes av en annen prosess som venter på en annen ressurs, frigir vi den og gir den til forespørselsprosessen.

Gjensidig utelukkelse

Gjensidig ekskludering er en full form for Mutex. Det er en spesiell type binær semafor som brukes til å kontrollere tilgang til den delte ressursen. Den inkluderer en prioritert arvemekanisme for å unngå problemer med utvidet prioritet inversjon. Den lar gjeldende oppgaver med høyere prioritet holdes i blokkert tilstand for kortest mulig tid.

Ressurser som deles, for eksempel skrivebeskyttede filer, fører aldri til vranglås, men ressurser, som skrivere og båndstasjoner, trenger eksklusiv tilgang med én enkelt prosess.

Hold og vent

I denne tilstanden må prosesser stoppes fra å holde på én eller flere ressurser mens de samtidig venter på en eller flere andre.

Sirkulær vent

Det pålegger en total bestilling av alle ressurstyper. Sirkulær venting krever også at hver prosess ber om ressurser i økende oppregningsrekkefølge.

Deadlock Unngåelse Algorithms

Det er bedre å unngå en dødlås i stedet for å ta grep etter at dødlåsen har oppstått. Den trenger ytterligere informasjon, for eksempel hvordan ressursene skal brukes. Deadlock-unngåelse er den enkleste og mest nyttige modellen som hver prosess erklærer det maksimale antallet ressurser av hver type som den kan trenge.

Unngåelse Algorithms

Algoritmen for å unngå dødlås hjelper deg til dynamisk å vurdere ressursallokeringstilstanden slik at det aldri kan oppstå en sirkulær ventesituasjon.

En enkelt forekomst av en ressurstype.

  • Bruk en ressursallokeringsgraf
  • Sykluser er nødvendige som er tilstrekkelige for dødlås

Flere forekomster av en ressurstype.

Forskjellen mellom sult og dødlås

Her er noen viktige forskjeller mellom Deadlock og sult:

vranglås Sult
Dødlåssituasjonen oppstår når en av prosessene ble blokkert. Sult er en situasjon der alle lavprioriterte prosesser ble blokkert, og de høyprioriterte prosessene utføres.
Deadlock er en uendelig prosess. Sult er en lang ventetid, men ikke en uendelig prosess.
Hver dødlås har alltid sult. Enhver sult har ikke nødvendigvis en dødlås.
Deadlock oppstår deretter gjensidig ekskludering, hold og vent. Her skjer ikke forkjøpsrett og sirkulær venting samtidig. Det skjer på grunn av ukontrollert prioritering og ressursstyring.

Fordeler med Deadlock

Her er fordeler/fordeler med å bruke Deadlock-metoden

  • Denne situasjonen fungerer godt for prosesser som utfører et enkelt utbrudd av aktivitet
  • Ingen forkjøp nødvendig for Deadlock.
  • Praktisk metode når den brukes på ressurser hvis tilstand enkelt kan lagres og gjenopprettes
  • Mulig å håndheve via kompileringstidskontroller
  • Trenger ingen kjøretidsberegning siden problemet er løst i systemdesign

Ulemper med Deadlock

Her er ulemper / ulemper ved å bruke deadlock-metoden

  • Forsinker prosessstart
  • Prosesser må kjenne fremtidig ressursbehov
  • Foregriper oftere enn nødvendig
  • Ikke tillater inkrementelle ressursforespørsler
  • Iboende forkjøpstap.

Sammendrag

  • Deadlock Definisjon: Det er en situasjon som oppstår i OS når en prosess går inn i en ventetilstand fordi en annen venteprosess holder den etterspurte ressursen
  • Sirkulær venting skjer når en prosess venter på ressursen, som holdes av den andre prosessen, som også venter på ressursen som holdes av den tredje prosessen osv.
  • En deadlock-forekomst kan oppdages av ressursplanleggeren.
  • Det er viktig å forhindre en fastlåsning før den kan oppstå.
  • En ressurs kan bare frigis frivillig av prosessen som holder den etter at prosessen har fullført oppgaven.
  • Gjensidig ekskludering er en full form for Mutex. Det er en spesiell type binær semafor som brukes til å kontrollere tilgangen til den delte ressursen.
  • Hold og vent er en tilstand der prosesser må stoppes fra å holde på én eller flere ressurser mens de samtidig venter på en eller flere andre.
  • Deadlock-unngåelse er den enkleste og mest nyttige modellen som hver prosess erklærer det maksimale antallet ressurser av hver type som den kan trenge.
  • Algoritmen for å unngå dødlås hjelper deg til dynamisk å vurdere ressursallokeringstilstanden slik at det aldri kan oppstå en sirkulær ventesituasjon.
  • Deadlock er en uendelig prosess, mens sult er en lang venting, men ikke en uendelig prosess.