Doodlopende weg Operating-systeem: wat is, circulair wachten (voorbeelden)
โก Slimme samenvatting
Een deadlock in een besturingssysteem treedt op wanneer een reeks processen geblokkeerd raakt doordat elk proces een resource bezet houdt en wacht op een andere resource die door een ander proces wordt bezet. Dit creรซert een vicieuze cirkel waarin geen enkel proces verder kan.

Wat is Deadlock?
impasse is een situatie die zich voordoet in een besturingssysteem Een deadlock treedt op wanneer een proces in een wachttoestand terechtkomt omdat een ander wachtend proces de gevraagde bron in bezit heeft. Deadlock is een veelvoorkomend probleem in multiprocessing, waarbij meerdere processen een specifiek type wederzijds exclusieve bron delen, bekend als een soft lock of software lock.
Wanneer er een deadlock optreedt, kan geen van de betrokken processen verdergaan, waardoor de betreffende werkzaamheden stoppen totdat het besturingssysteem ingrijpt.
Voorbeeld van een deadlock
- Een voorbeeld uit de praktijk is verkeer dat slechts in รฉรฉn richting rijdt.
- Hier wordt een brug als een hulpbron beschouwd.
- Dus, wanneer er een impasse optreedt, kan deze worden opgelost als รฉรฉn auto achteruitrijdt (resources reserveert en terugdraait).
- Als er een file ontstaat, moeten er mogelijk meerdere auto's achteruitrijden.
- Hongersnood is dus mogelijk.
Voorbeeld van een deadlock
Wat is Circulair wachten?
Een proces wacht op een resource die in bezit is van een tweede proces, dat op zijn beurt wacht op een resource die in bezit is van een derde proces, enzovoort. Dit gaat door totdat het laatste proces wacht op een resource die in bezit is van het eerste proces. Dit creรซert een circulaire keten.
Een voorbeeld hiervan is dat proces A resource B toegewezen krijgt terwijl het resource A aanvraagt. Op dezelfde manier krijgt proces B resource A toegewezen terwijl het resource B aanvraagt. Dit creรซert een circulaire wachtlus.
Voorbeeld van circulair wachten
Een computer heeft bijvoorbeeld drie USB-drives en drie processen. Elk van de drie processen gebruikt รฉรฉn van de USB-drives. Wanneer een proces een andere drive aanvraagt, ontstaat er een impasse, omdat elk proces wacht tot een USB-drive wordt vrijgegeven terwijl deze nog in gebruik is. Dit resulteert in een vicieuze cirkel.
Voorbeeld circulair wachten
Deadlockdetectie in besturingssysteem
Een deadlock kan worden gedetecteerd door de resourceplanner. Een resourceplanner helpt het besturingssysteem om een โโdeadlock te voorkomen. track van alle resources die aan verschillende processen zijn toegewezen. Zodra een deadlock wordt gedetecteerd, kan deze worden opgelost door resources te onderbreken, een proces terug te draaien of een of meer van de vastgelopen processen te beรซindigen.
Deadlockpreventie in besturingssystemen
Het is belangrijk om een โโdeadlock te voorkomen voordat deze zich kan voordoen. Het systeem controleert elke transactie voordat deze wordt uitgevoerd om er zeker van te zijn dat deze niet tot een deadlock leidt. Zelfs een kleine bewerking die in de toekomst een deadlock zou kunnen veroorzaken, wordt nooit toegestaan โโom te worden uitgevoerd.
Het voorkomen van een impasse is een reeks methoden om ervoor te zorgen dat ten minste รฉรฉn van de vier noodzakelijke voorwaarden niet kan worden vervuld.
Geen voorkoop
Een resource kan alleen vrijwillig worden vrijgegeven door het proces dat deze vasthoudt, nadat dat proces zijn taak heeft voltooid.
- Als een proces dat resources bezet houdt, een andere resource aanvraagt โโdie niet direct kan worden toegewezen, worden al zijn resources vrijgegeven.
- Gepreรซmpteerde resources worden toegevoegd aan de lijst met resources waarop het proces wacht.
- Het proces wordt pas opnieuw gestart wanneer het zowel de oude als de nieuwe resources die het aanvraagt, weer tot zijn beschikking heeft.
Wederzijdse uitsluiting
Mutual Exclusion is de volledige naam van Mutex. Het is een speciaal type binair systeem. seinpaal Dit wordt gebruikt om de toegang tot een gedeelde bron te beheren. Het omvat een mechanisme voor prioriteitsovererving om problemen met langdurige prioriteitsinversie te voorkomen en zorgt ervoor dat taken met een hogere prioriteit zo kort mogelijk geblokkeerd blijven.
Gedeelde resources zoals alleen-lezen bestanden leiden nooit tot deadlocks, maar resources zoals printers en tapedrives vereisen exclusieve toegang door รฉรฉn enkel proces.
Vasthouden en wachten
In deze situatie moeten processen worden gestopt die รฉรฉn of meer resources in beslag nemen terwijl ze tegelijkertijd wachten op รฉรฉn of meer andere resources.
Circulair wachten
Deze methode legt een totale ordening op van alle resourcetypen. Om circulaire wachttijden te voorkomen, moet elk proces resources aanvragen in een oplopende volgorde van nummering.
Impasse vermijden Algorithms
Het is beter om een โโimpasse te voorkomen dan actie te ondernemen nadat deze zich heeft voorgedaan. Voorkomen vereist aanvullende informatie, zoals hoe de resources zullen worden gebruikt. Het voorkomen van impasses is een nuttig model waarbij elk proces het maximale aantal resources van elk type declareert dat het mogelijk nodig heeft.
Vermijding Algorithms
Het algoritme ter voorkoming van deadlocks beoordeelt dynamisch de status van de resource-allocatie, zodat een situatie met een oneindige wachtlus nooit kan ontstaan.
Voor รฉรฉn instantie van een resourcetype:
- Gebruik een resource-allocatiegrafiek.
- Een cyclus in de grafiek is noodzakelijk en voldoende voor een deadlock.
Voor meerdere instanties van een bepaald resourcetype:
- Een cyclus is noodzakelijk, maar niet voldoende voor een impasse.
- Gebruik de Bankiersalgoritme.
Verschil tussen hongersnood en impasse
Hieronder volgen enkele belangrijke verschillen tussen een impasse en uithongering:
| impasse | uithongering |
|---|---|
| Een impasse treedt op wanneer een van de processen vastloopt. | Uithongering is een situatie waarbij alle processen met lage prioriteit worden geblokkeerd terwijl de processen met hoge prioriteit worden uitgevoerd. |
| Deadlock is een oneindig proces. | Hongersnood is een lange wachttijd, maar geen oneindig proces. |
| Bij elke impasse is er sprake van uithongering. | Niet elke hongersnood leidt noodzakelijkerwijs tot een impasse. |
| Een impasse ontstaat doordat wederzijdse uitsluiting, vasthouden en wachten, geen voorrang en een circulaire wachttoestand tegelijkertijd optreden. | Dit komt door ongecontroleerde prioriteiten en slecht resourcebeheer. |
Voordelen van Deadlock
Hieronder volgen de voordelen van het gebruik van de deadlock-afhandelingsmethode:
- Deze situatie werkt goed voor processen die eenmalig een korte, intense activiteit uitvoeren.
- Voor een deadlock is geen preรซmptie nodig.
- Het is een handige methode wanneer deze wordt toegepast op resources waarvan de status eenvoudig kan worden opgeslagen en hersteld.
- Het is mogelijk om dit af te dwingen via controles tijdens het compileren.
- Er is geen berekening tijdens de uitvoering nodig, aangezien het probleem al in het systeemontwerp is opgelost.
Nadelen van Deadlock
Hieronder volgen de nadelen van het gebruik van de deadlock-afhandelingsmethode:
- Het vertraagt โโde start van het proces.
- Processen moeten hun toekomstige resourcebehoeften van tevoren kennen.
- Het voorkomt vaker problemen dan nodig is.
- Het staat geen incrementele resourceaanvragen toe.
- Het kent inherente verliezen als gevolg van voorkooprecht.


