Wat is een impasse in besturingssysteem: condities en detectie-algoritme

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Het belangrijkste doel van een besturingssysteem is om een ​​goede communicatie tussen hardware- en softwarebronnen te bieden en ook om algemene services aan programma's te verlenen. Wanneer een besturingssysteemproces toegang wil krijgen tot een bron, stuurt het eerst een verzoek naar de specifieke bron waartoe het toegang wil hebben, vervolgens gebruikt het de bron en geeft uiteindelijk de bron na gebruik vrij. Stel dat veel processen tegelijkertijd proberen toegang te krijgen tot één bron, dan wordt het moeilijk om één bron aan alle processen tegelijk te geven. In een dergelijke situatie ontstaat het concept met de naam deadlock. Daarom wordt in dit artikel beschreven hoe impasses optreden en hoe u deze impasse kunt overwinnen.

Wat is de impasse in het besturingssysteem?

Definitie: Dead-Lock is een situatie waarin twee of meer processors wachten op een gebeurtenis, maar dergelijke gebeurtenissen die niet plaatsvinden, zijn een impasse en de processors zouden in een impasse verkeren. Laten we bijvoorbeeld uitgaan van een real-time scenario, waarbij er twee auto's A & B zijn, bestuurd door twee individuele chauffeurs op een eenrichtingsweg. Nu doet zich de situatie voor dat de bestuurder van auto A zegt dat hij naar het noorden rijdt de juiste richting is, terwijl de bestuurder van auto B zegt dat hij naar het zuiden rijdt correct is. Maar geen van beiden beweegt zich terug om een ​​andere auto vooruit te laten rijden; deze toestand wordt een impasse genoemd.




Auto-voorbeeld

auto-voorbeeld

Laten we voor een beter begrip een ander voorbeeld bekijken waarbij er twee bronnen R1, R2 en twee processen P1 en P2 zijn, waarbij R1 is toegewezen aan P1 en R2 is toegewezen aan P2. Als P1 nu toegang wil tot R2, zoals we al weten, wordt R2 vastgehouden door P2, en nu wil P2 toegang krijgen tot R1, wat betekent dat P1 alleen wordt uitgevoerd wanneer het toegang krijgt tot R2, ook P2 wordt alleen uitgevoerd wanneer het toegang krijgt tot R1 deze situatie is een impasse.



Processor-voorbeeld

processor-voorbeeld

Dead-Lock-omstandigheden

Hieronder volgen de vier belangrijke deadlock-condities die moeten optreden als alle condities tegelijkertijd optreden, er bepaalde kansen zijn dat de deadlock zich voordoet.

Wederzijdse uitsluiting

Het betekent dat welke bron we ook gebruiken, het op een wederzijds exclusieve manier moet worden gebruikt. Waar slechts één proces slechts één resource tegelijk gebruikt. Het printproces is bijvoorbeeld aan de gang en plotseling probeert een ander proces het printproces te onderbreken. Dus hier in een situatie van wederzijdse uitsluiting, wordt pas nadat de afdruktaak is voltooid, alleen de volgende taak verwerkt. Wederzijdse uitsluiting kan worden geëlimineerd door middelen tegelijkertijd te delen, wat praktisch niet mogelijk is.

Wederzijdse uitsluiting

wederzijdse uitsluiting

Geen voorkoop

Volgens preventief gebaseerde algoritmen, als er een prioriteitstaak is die probeert de huidige taak te onderbreken. Het preventieve algoritme houdt de huidige taak vast en voert eerst de prioriteitstaak uit en keert terug naar zijn eerste taak. Een situatie uitgelegd volgens het bovenstaande voorbeeld waarbij een proces de bron vasthoudt zolang het wordt uitgevoerd, dat wil zeggen dat P1 R1 alleen kan vrijgeven na het uitvoeren, op dezelfde manier geeft P2 R2 pas vrij na uitvoering. Als er geen voorkoop is, kan de impasse ontstaan.


No-Preemption-voorbeeld

no-preemption-voorbeeld

Wacht en wacht

Een proces bevat enkele bronnen en wacht op aanvullende bronnen, maar die bronnen worden verkregen door een ander proces. Uit het bovenstaande voorbeeld houdt P1 R1 vast en wacht op R2, waar R2 wordt verworven door P2, en P2 houdt R2 vast en wacht op R1, waar R1 wordt verworven door P1 is een vasthoud- en wachtsituatie-impasse in het systeem.

Wacht-en-wacht-voorbeeld

hold-and-wait-voorbeeld

Circulaire wacht

Van een reeks processen wordt gezegd dat ze in een impasse verkeren als een proces wacht op een bron die aan een ander proces is toegewezen en dat proces wacht op een bron, het is vergelijkbaar met het hierboven toegelichte voorbeeld waarin het in lusvorm is. Waar P1 wacht op R2 en R2 is toegewezen aan P2 en P2 wacht op R1 en R1 toegewezen aan P1, wat een cirkelvormige wachtvorm is als aan deze voorwaarde voldoet een deadlock optreedt.

Circular-Wait-Voorbeeld

circulaire-wacht-voorbeeld

Algoritme voor Dead-Lock-detectie

De gevallen waarin we bronnen toewijzen aan processen en het besturingssysteem opnieuw controleert of er een impasse is opgetreden in het systeem of geen gebruik maakt van 2 hoofdalgoritmen voor impasse-detectie, zijn dat

  • Enkele instantie
  • Meerdere exemplaren van het resourcetype

Enkele instantie

Een enkele instantie is een situatie waarin een systeem enkele instanties van alle bronnen heeft. Het is ook bekend als wachten op grafiekalgoritme of grafiek voor resourcetoewijzing. De resourcetoewijzingsgrafiek bestaat uit een set processen en een set resources die worden weergegeven als twee verschillende hoekpunten. De resources in de resourcetoewijzingsgrafiek worden gewijzigd en worden weergegeven als wacht op grafiekvorm. Waar wachten op grafiekvorm alleen processen heeft die worden weergegeven als hoekpunten zoals hieronder getoond, waarin,

  • Grafiek voor toewijzing van middelen: Processen P1, P2, P3 en middelen R1, R2, R3 worden weergegeven in de grafiek voor toewijzing van middelen.
  • Wacht op grafiek: alleen processen P1, P2, P3 worden vermeld in afwachting van de grafiek.
  • Als er een cyclusconditie is, betekent dit dat als er een continue stroom van een proces in één richting is, dit betekent dat de cyclusconditie wordt beëindigd en wordt gewacht tot de grafiek in een impasse verkeert.

Voorbeeld 1: Het onderstaande voorbeeld laat zien dat er geen impasse is omdat er geen continue stroom wordt waargenomen in afwachting van de grafiek.

Single-Instance-Voorbeeld 1

single-instance-example1

Voorbeeld 2: Er is een deadlock-toestand opgetreden omdat er een continue cyclusstroom is van P1 naar P4.

Single-Instance - Voorbeeld2

single-instance-example2

Als deadlock zeer vaak voorkomt in het systeem, wordt het detectie-algoritme vaak gebruikt. Als er meer gebruik wordt gemaakt van het detectie-algoritme, zal er meer overhead en meer rekentijd zijn. Om dit te verhelpen, roepen we het algoritme op nadat we een gelijke hoeveelheid tijd hebben gegeven, dit is hoe het gewicht voor de grafiek wordt gebruikt om een ​​impasse te detecteren.

Meerdere instanties van brontype

Meerdere exemplaren van het resourcetype is een situatie waarin een systeem meerdere exemplaren van alle bronnen heeft, het is ook bekend als het Bankers-algoritme. Volgens het Bankers-algoritme, zodra het proces al zijn vereiste bronnen krijgt, maakt het zijn bronnen vrij.

Laten we het volgende voorbeeld bekijken, aannemen dat er 3 processen P0, P1, P2 en resourcetype A, B, C zijn waar A kan zijn processor , B kan printer zijn en C kan het toetsenbord zijn. De cijfers '0' in de kolom geven de beschikbaarheid van bronnen aan.

Geval (i): Stel dat als we aannemen dat het conditieverzoek de '000' -conditie is die aanwezig is in P0 en P2, we zouden moeten controleren aan welk verzoek is voldaan, de processen P0 geven de processen vrij nadat ze zijn toegewezen, en de volgende P2-processen worden vrijgegeven nadat ze zijn toegewezen. Op deze manier geeft het proces een voor een P0, P2, P3, P1, P4 in een reeks vrij. Ten slotte krijgen we beschikbare bronnen als P7, P2, P6. De beschikbare volgorde is een toestand waarbij er geen impasse is.

Bankiers-algoritme-voorbeeld 1

bankiers-algoritme-voorbeeld1

Huizen (ii): Stel dat als P2 001 is in plaats van 000, pas dan nu het algoritme van de bankier toe om te controleren op deadlock, waarbij de enige P0 wordt uitgevoerd tussen alle 5 processen. Daarom bevinden P1, P2, P3, P4 zich in een impasse, behalve P0.

Bankiers-voorbeeld 2

bankiers-voorbeeld2

Toepassingen van Deadlock

De toepassingen van deadlock kunnen worden uitgelegd aan de hand van een real-time voorbeeld van online tentamenresultaten, waarbij meerdere studenten op het moment van uitgave proberen toegang te krijgen tot hun universitaire website. Men kan opmerken dat de webpagina soms niet tegelijkertijd voor meerdere gebruikers wordt geladen, dit is een impasse. Dit kan worden verholpen met behulp van een van de algoritmen.

Voordelen

De voordelen van deadlock zijn

  • Bij het vermijden van impasses wordt geen voorrang gegeven
  • Geen vertraging in het proces

Nadelen

Het nadeel van een impasse is

  • Het te gebruiken middel moet vooraf bekend zijn
  • Blokkering van het proces gedurende lange tijd
  • Verliezen bij voorkoop worden geërfd.

Dit artikel geeft een overzicht van hoe impasses optreden wanneer er twee of meer processen zijn en de drie condities die de oorzaak zijn van een impasse, en de twee soorten algoritmen, namelijk het algoritme voor het delen van bronnen dat detecteert dat er een impasse toestand en het algoritme van bankiers, dat een algoritme is om deadlock te vermijden. Hier is de vraag 'Wat gebeurt er als de impasse wordt genegeerd?'.