Hvad er Livelock?
En livelock er en situation, hvor en anmodning om en eksklusiv lås nægtes gentagne gange, da mange overlappende delte låse bliver ved med at blande hinanden. Processerne fortsætter med at ændre deres status, hvilket yderligere forhindrer dem i at udføre opgaven. Dette forhindrer dem yderligere i at udføre opgaven.
I denne operativsystemvejledning lærer du:
- Hvad er Livelock?
- Eksempler på Livelock
- Hvad fører til livelock?
- Hvad er Deadlock?
- Eksempel på deadlock
- Hvad er sult?
- Forskellen mellem dødlås, sult og livelock
Eksempler på Livelock
Eksempel 1:
Et nemmeste eksempel på Livelock ville være to mennesker, der mødes ansigt til ansigt i en korridor, og begge bevæger sig til side for at lade den anden passere. De ender med at bevæge sig fra side til side uden at gøre nogen fremskridt, da de bevæger sig på samme måde på det tidspunkt. Her krydser de aldrig hinanden.
Eksempel 2:
Du kan se i ovenstående billede, at hver af de to givne processer har brug for to ressourcer, og de bruger det primitive polling enter-register til at forsøge at erhverve de låse, der er nødvendige for dem. Hvis forsøget mislykkes, fungerer metoden igen.
- Process A hold Y-ressource
- Process B indeholder ressource X
- Process A kræver X-ressource
- Process B kræver Y-ressource
Under forudsætning af at proces A kører først og erhverver dataressource X og derefter kører proces B og erhverver ressource Y, uanset hvilken proces der kører først, ingen af dem fortsætter.
Ingen af de to processer er dog blokeret. De bruger CPU-ressourcer gentagne gange uden nogen fremskridt, men stopper også enhver behandlingsblok.
Derfor er denne situation ikke situationen med en blindlås, fordi der ikke er en enkelt proces, der er blokeret, men vi står over for situationen, der svarer til en blokering, som er LIVELOCK.
Hvad fører til livelock?
Livelock opstår, når det samlede antal tilladte processer i et specifikt system skal defineres af det samlede antal poster i procestabellen. Derfor skal procestabell-slots betegnes som Endelige ressourcer.
Hvad er Deadlock?
En deadlock er en situation, der opstår i OS, når en proces går i ventetilstand, fordi en anden venteproces holder den krævede ressource. Deadlock er et almindeligt problem i multibearbejdning, hvor flere processer deler en bestemt type gensidigt eksklusiv ressource kendt som soft lock eller software.
Eksempel på deadlock
- Et eksempel fra den virkelige verden ville være trafik, som kun går i én retning.
- Her betragtes en bro som en ressource.
- Så når Deadlock sker, kan det let løses, hvis en bil sikkerhedskopierer (Forebyg ressourcer og tilbageførsel).
- Flere biler skal muligvis sikkerhedskopieres, hvis der opstår en blokering.
- Så sult er mulig.

Hvad er sult?
Sult er en situation, hvor alle processer med lav prioritet blev blokeret, og processer med høj prioritet fortsætter. I ethvert system fortsætter anmodninger om ressourcer med høj / lav prioritet dynamisk. Dermed kræves en eller anden politik for at afgøre, hvem der får støtte hvornår.
Ved hjælp af nogle algoritmer får nogle processer muligvis ikke den ønskede service, selvom de ikke er blokeret. Sult opstår, når nogle tråde gør delte ressourcer utilgængelige i lang tid.
Eksempel på sult:
For eksempel tilbyder et objekt en synkroniseret metode, som sandsynligvis tager lang tid at vende tilbage. Hvis en tråd bruger denne metode ofte, vil andre tråde, der også har brug for hyppig synkroniseret adgang til det samme objekt, ofte blive blokeret.
Forskellen mellem dødlås, sult og livelock
- En blokering er en situation, der opstår i OS, når en proces går i ventetilstand, fordi den krævede ressource holdes af en anden venteproces.
- En husdyr, på den anden side, ligner næsten en fastlåst tilstand, bortset fra at tilstanden af de processer, der er involveret i en livelock, altid bliver ved med at skifte til hinanden, ingen fremskridt.
- Så Livelock er et unikt tilfælde af ressource sult.
Resumé:
- Definition: En livelock er en situation, hvor en anmodning om en eksklusiv lås nægtes gentagne gange, da mange overlappende delte låse bliver ved med at blande hinanden.
- Livelock opstår, når det samlede antal tilladte processer i et specifikt system skal defineres af det samlede antal poster i procestabellen
- En deadlock er en situation, der opstår i OS, når en proces går i ventetilstand, fordi en anden venteproces holder den krævede ressource.
- Et eksempel fra den virkelige verden ville være trafik, som kun går i én retning.
- Et eksempel på Livelock ville være to mennesker, der mødes ansigt til ansigt i en korridor, og begge bevæger sig til side for at lade den anden passere.
- Sult er en situation, hvor alle processer med lav prioritet blev blokeret, og processer med høj prioritet fortsætter.