Deadlock in Operating System: Hvad er, cirkulær ventetid (eksempler)

Hvad er Deadlock?

Deadlock er en situation, der opstår i OS, når en proces går ind i en ventetilstand, fordi en anden venteproces holder den efterspurgte ressource. Deadlock er et almindeligt problem i multi-processing, hvor flere processer deler en specifik type gensidigt ekskluderende ressource kendt som en blød lås 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 nemt løses, hvis én bil bakker (Foregribe ressourcer og tilbagerulning).
  • Flere biler skal muligvis bakkes op, hvis en deadlock situation opstår.
  • Så sult er muligt.
Eksempel på Deadlock
Eksempel på deadlock

Hvad er cirkulær ventetid?

En proces venter på ressourcen, som holdes af den anden proces, som også venter på ressourcen, som den tredje proces holder osv. Dette vil fortsætte, indtil den sidste proces venter på en ressource, som den første proces holder. Dette skaber en cirkulær kæde.

For eksempel tildeles proces A ressource B, da den anmoder om ressource A. På samme måde tildeles proces B ressource A, og den anmoder om ressource B. Dette skaber en cirkulær venteløkke.

Eksempel på cirkulær ventetid

For eksempel har en computer tre USB-drev og tre processer. Hver af de tre processer er i stand til at rumme et af USB-drevene. Så når hver proces anmoder om et andet drev, vil de tre processer have deadlock situation, da hver proces vil vente på, at USB-drevet frigives, som i øjeblikket er i brug. Dette vil resultere i en cirkulær kæde.

Eksempel på cirkulær ventetid

Cirkulær venteeksempel

Deadlock Detektion i OS

det afadlock forekomst kan detekteres af ressourceplanlæggeren. En ressourceplanlægger hjælper OS med at holde styr på alle de ressourcer, der er allokeret til forskellige processer. Så når en deadlock er opdaget, kan det løses ved hjælp af nedenstående metoder:

Deadlock Forebyggelse i OS

Det er vigtigt at forhindre en deadlock før det kan ske. Systemet kontrollerer hver transaktion, før den udføres for at sikre, at den ikke fører deadlock situationer. Sådan at selv en lille ændring til at forekomme død, at en operation, som kan føre til Deadlock i fremtiden tillod det heller aldrig, at processen blev udført.

Det er et sæt metoder til at sikre, at mindst én af betingelserne ikke kan holde.

Ingen forebyggende handling

Ingen præemption - En ressource kan kun frigives frivilligt af den proces, der holder den, efter at processen har afsluttet sin opgave

  • Hvis en proces, som indeholder nogle ressourcer, anmoder om en anden ressource, som ikke umiddelbart kan allokeres til den, vil alle ressourcer i den situation blive frigivet.
  • Forudgående ressourcer kræver listen over ressourcer for en proces, der venter.
  • Processen genstartes kun, hvis den kan genvinde sin gamle ressource og en ny, som den anmoder om.
  • Hvis processen anmoder om en anden ressource, når den er tilgængelig, blev den givet til den anmodende proces.
  • Hvis den holdes af en anden proces, der venter på en anden ressource, frigiver vi den og giver den til den anmodende proces.

Gensidig udelukkelse

Gensidig udelukkelse er en fuld form for Mutex. Det er en speciel type binær semafor, som bruges til at kontrollere adgangen til den delte ressource. Det inkluderer en prioritetsarvsmekanisme for at undgå problemer med udvidet prioritetsinversion. Det gør det muligt at holde aktuelle opgaver med højere prioritet i blokeret tilstand i kortest mulig tid.

Ressourcer, der deles, såsom skrivebeskyttede filer, fører aldrig til deadlocks, men ressourcer, som printere og båndstationer, har brug for eksklusiv adgang ved en enkelt proces.

Hold og vent

I denne tilstand skal processer stoppes i at indeholde enkelte eller flere ressourcer, mens de er simultaneoventer normalt på en eller flere andre.

Cirkulær Vent

Det pålægger en total bestilling af alle ressourcetyper. Cirkulær ventetid kræver også, at hver proces anmoder om ressourcer i stigende rækkefølge af opregning.

Deadlock Undgåelse Algorithms

Det er bedre at undgå en deadlock i stedet for at handle efter Deadlock er sket. Det har brug for yderligere information, såsom hvordan ressourcer skal bruges. Deadlock undgåelse er den enkleste og mest nyttige model, som hver proces declares det maksimale antal ressourcer af hver type, som det kan have brug for.

Undgåelse Algorithms

Deadlock-undgåelsesalgoritmen hjælper dig med dynamisk at vurdere ressourceallokeringstilstanden, så der aldrig kan være en cirkulær ventesituation.

En enkelt forekomst af en ressourcetype.

  • Brug en ressourceallokeringsgraf
  • Der er nødvendige cyklusser, som er tilstrækkelige til Deadlock

Flere forekomster af en ressourcetype.

Forskellen mellem sult og deadlock

Her er nogle vigtige forskelle mellem Deadlock og sult:

Deadlock Sult
Deadlock situation opstår, når en af ​​processerne blev blokeret. Sult er en situation, hvor alle lavprioritetsprocesser blev blokeret, og de højprioriterede processer eksekveres.
Deadlock er en uendelig proces. Sult er en lang ventetid, men ikke en uendelig proces.
Hver Deadlock har altid sult. Enhver sult har ikke nødvendigvis en deadlock.
Deadlock sker så Gensidig udelukkelse, hold og vent. Her sker forkøb og cirkulær ventetid ikke samtidigneoalmindeligt. Det sker på grund af ukontrolleret prioritering og ressourcestyring.

Fordele ved Deadlock

Her er fordele/fordele ved at bruge Deadlock metode

  • Denne situation fungerer godt for processer, der udfører et enkelt udbrud af aktivitet
  • Ingen forkøbsret nødvendig for Deadlock.
  • Praktisk metode, når den anvendes på ressourcer, hvis tilstand nemt kan gemmes og gendannes
  • Mulig at håndhæve via kompileringstidskontrol
  • Behøver ingen runtime-beregning, da problemet er løst i systemdesign

Ulemper ved Deadlock

Her er ulemper/ulemper ved at bruge deadlock metode

  • Forsinker processtart
  • Processer skal kende fremtidens ressourcebehov
  • Foregriber oftere end nødvendigt
  • Dis-tillader trinvise ressourceanmodninger
  • Iboende forkøbstab.

Resumé

  • Deadlock Definition: Det er en situation, der opstår i OS når en proces går ind i en ventetilstand, fordi en anden venteproces holder den efterspurgte ressource
  • Cirkulær afventning sker, når en proces venter på ressourcen, som holdes af den anden proces, som også venter på ressourcen, som den tredje proces holder osv.
  • det afadlock forekomst kan detekteres af ressourceplanlæggeren.
  • Det er vigtigt at forhindre en deadlock før det kan ske.
  • En ressource kan kun frigives frivilligt af den proces, der holder den, efter at processen har afsluttet sin opgave.
  • Gensidig udelukkelse er en fuld form for Mutex. Det er en speciel type binær semafor som bruges til at kontrollere adgangen til den delte ressource.
  • Hold og vent er en tilstand, hvor processer skal stoppes fra at indeholde enkelte eller flere ressourcer, mens de er på samme tidneoventer normalt på en eller flere andre.
  • Deadlock undgåelse er den enkleste og mest nyttige model, som hver proces declares det maksimale antal ressourcer af hver type, som det kan have brug for.
  • Deadlock-undgåelsesalgoritmen hjælper dig med dynamisk at vurdere ressourceallokeringstilstanden, så der aldrig kan være en cirkulær ventesituation.
  • Deadlock er en uendelig proces, hvorimod sult er en lang ventetid, men ikke en uendelig proces.