Livelock: Hva er, eksempel, forskjell med dødlås

Innholdsfortegnelse:

Anonim

Hva er Livelock?

En livelock er en situasjon der en forespørsel om en eksklusiv lås avslås gjentatte ganger, ettersom mange overlappende delte låser fortsetter å forstyrre hverandre. Prosessene fortsetter å endre status, noe som ytterligere hindrer dem i å fullføre oppgaven. Dette forhindrer dem ytterligere i å fullføre oppgaven.

I denne veiledningen til operativsystemet vil du lære:

  • Hva er Livelock?
  • Eksempler på Livelock
  • Hva fører til livelock?
  • Hva er Deadlock?
  • Eksempel på Deadlock
  • Hva er sult?
  • Forskjellen mellom dødlås, sult og livelock

Eksempler på Livelock

Eksempel 1:

Et enkleste eksempel på Livelock ville være to personer som møtes ansikt til ansikt i en korridor, og begge beveger seg til side for å la den andre passere. De ender opp med å bevege seg fra side til side uten å gjøre noen fremgang da de beveger seg på samme måte den gangen. Her krysser de aldri hverandre.

Eksempel 2:

Du kan se i bildet ovenfor, at hver av de to gitte prosessene trenger to ressurser, og de bruker det primitive polling enter-registeret for å prøve å skaffe de låser som er nødvendige for dem. Hvis forsøket mislykkes, fungerer metoden igjen.

  1. Prosess A hold Y-ressurs
  2. Prosess B inneholder ressurs X
  3. Prosess A krever X-ressurs
  4. Prosess B krever Y-ressurs

Forutsatt at prosess A kjører først og anskaffer dataressurs X og deretter kjører prosess B og anskaffer ressurs Y, uansett hvilken prosess som kjører først, ingen av dem fortsetter.

Ingen av de to prosessene er imidlertid blokkert. De bruker opp CPU-ressurser gjentatte ganger uten noen fremgang, men stopper også noen behandlingsblokker.

Derfor er denne situasjonen ikke den som er i en fastlåst tilstand fordi det ikke er en eneste prosess som er blokkert, men vi står overfor situasjonen noe som tilsvarer en fastlåst tilstand, som er LIVELOCK.

Hva fører til livelock?

Livelock oppstår når det totale antallet tillatte prosesser i et bestemt system skal defineres av det totale antallet oppføringer i prosesstabellen. Derfor bør prosessbordspor refereres til som Endelige ressurser.

Hva er Deadlock?

En fastlåst tilstand er en situasjon som oppstår i operativsystemet når en prosess går i ventetilstand fordi en annen venteprosess holder den etterspurte ressursen. Dødlås er et vanlig problem i multibearbeiding der flere prosesser deler en bestemt type gjensidig utelukkende ressurs kjent som en soft lock eller programvare.

Eksempel på Deadlock

  • Et eksempel fra den virkelige verden ville være trafikk, som bare går i én retning.
  • Her betraktes en bro som en ressurs.
  • Så når Deadlock skjer, kan det enkelt løses hvis en bil tar sikkerhetskopi (Preempt resources and rollback).
  • Det kan være nødvendig å sikkerhetskopiere flere biler hvis det oppstår en fastlåst situasjon.
  • Så sult er mulig.
Eksempel på fastlåst

Hva er sult?

Sult er en situasjon der alle prosesser med lav prioritet ble blokkert, og prosesser med høy prioritet fortsetter. I ethvert system fortsetter forespørsler om ressurser med høy / lav prioritet dynamisk. Dermed kreves det noen policyer for å avgjøre hvem som får støtte når.

Ved hjelp av noen algoritmer kan det hende at noen prosesser ikke får ønsket service, selv om de ikke er låst. Sult oppstår når noen tråder gjør at delte ressurser ikke er tilgjengelige i lang tid.

Eksempel på sult:

For eksempel tilbyr et objekt en synkronisert metode som det vil ta lang tid å returnere. Hvis en tråd bruker denne metoden ofte, blir andre tråder som også trenger hyppig synkronisert tilgang til det samme objektet ofte blokkert.

Forskjellen mellom dødlås, sult og livelock

  • En fastlåst situasjon er en situasjon som oppstår i operativsystemet når en prosess går i ventetilstand fordi den etterspurte ressursen blir holdt av en annen venteprosess.
  • En husdyr, derimot, ligner nesten en fastlåst tilstand, bortsett fra at tilstandene til prosessene som er involvert i en livmasse alltid fortsetter å skifte til hverandre, uten at noen utvikler seg.
  • Så Livelock er et unikt tilfelle av sult i ressurser.

Sammendrag:

  • Definisjon: En livelock er en situasjon der en forespørsel om en eksklusiv lås avslås gjentatte ganger, ettersom mange overlappende delte låser fortsetter å forstyrre hverandre.
  • Livelock oppstår når det totale antallet tillatte prosesser i et bestemt system skal defineres av det totale antallet oppføringer i prosesstabellen
  • En fastlåst tilstand er en situasjon som oppstår i operativsystemet når en prosess går i ventetilstand fordi en annen venteprosess holder den etterspurte ressursen.
  • Et eksempel fra den virkelige verden ville være trafikk, som bare går i én retning.
  • Et eksempel på Livelock ville være to personer som møtes ansikt til ansikt i en korridor, og begge beveger seg til side for å la den andre passere.
  • Sult er en situasjon der alle prosesser med lav prioritet ble blokkert, og prosesser med høy prioritet fortsetter.