Vergelijkingstabel
Basis voor Comparsion | Impasse | uithongering |
---|---|---|
basis- | Deadlock is waar geen enkel proces doorgang vindt en wordt geblokkeerd. | Honger is waar processen met lage prioriteit worden geblokkeerd en proces met hoge prioriteit verloopt. |
Opkomende toestand | Het voorkomen van wederzijdse uitsluiting, vasthouden en wachten, geen voorrang en circulair wachten tegelijkertijd. | Handhaving van prioriteiten, ongecontroleerd beheer van hulpbronnen. |
Andere naam | Circulaire wachttijd. | Lifelock. |
Middelen | In vastgelopen bronnen worden aangevraagde bronnen geblokkeerd door de andere processen. | Bij verhongering worden de gevraagde middelen continu gebruikt door processen met hoge prioriteit. |
het voorkomen | Het vermijden van wederzijdse uitsluiting, vasthouden en wachten, en circulair wachten en voorrang geven. | Veroudering. |
Definitie van deadlock
Deadlock is een situatie waarbij de verschillende CPU-processen strijden om het eindige aantal beschikbare bronnen binnen de CPU. Hier houdt elk proces een resource bij en wacht om een resource te verwerven die in het bezit is van een ander proces. Alle processen wachten circulair op middelen. In de onderstaande afbeelding kunt u zien dat proces P1 resource R2 heeft opgehaald die wordt aangevraagd door proces P2 en proces P1 vraagt om resource R1 die opnieuw door R2 wordt beheerd. Dus proces P1 en P2 vormen een impasse.
- Wederzijdse uitsluiting: slechts één proces tegelijk kan een resource gebruiken als een ander proces dezelfde resource aanvraagt, het moet wachten totdat het proces met behulp van de resource de resource vrijgeeft.
- Wacht en wacht: een proces moet een bron bevatten en wachten om een andere bron te verkrijgen die door een ander proces wordt vastgehouden.
- Geen voorkeur: het proces dat de resources bevat, kan niet worden misbruikt. Het proces dat de resource bevat, moet de bron vrijwillig vrijgeven als het zijn taak heeft voltooid.
- Circulair wachten: het proces moet circulair op middelen wachten. Stel dat we drie processen {P0, P1, P2} hebben. De P0 moet wachten op de hulpbron van P1; P1 moet wachten om de resource te verwerven die in het bezit is van proces P2, en P2 moet wachten om het proces van P0 te verkrijgen.
Hoewel er enkele toepassingen zijn die de programma's kunnen detecteren die vastlopen. Maar het besturingssysteem is nooit verantwoordelijk voor het voorkomen van deadlocks. Het is de verantwoordelijkheid van programmeurs om deadlockvrije programma's te ontwerpen. Dit kan worden gedaan door de bovenstaande voorwaarden te vermijden die noodzakelijk zijn voor het voorkomen van deadlock
Definitie van Starvedation
Honger kan worden gedefinieerd als wanneer een procesverzoek voor een hulpbron en die bron continu is gebruikt door de andere processen en het verzoekingsproces dan uitgehongerd is. Bij uithongering wacht een proces dat gereed is om te worden uitgevoerd op CPU om de resource toe te wijzen. Maar het proces moet voor onbepaalde tijd wachten omdat de andere processen de gevraagde bronnen continu blokkeren.
Het probleem van uithongering komt in het algemeen voor bij prioriteitsplanningalgoritmen . In het prioriteitplanningalgoritme wordt aan het proces met hogere prioriteit altijd de resource toegewezen, waardoor wordt voorkomen dat het proces met de lagere prioriteit de gevraagde bron krijgt.
Vergrijzing kan het probleem van de hongerdood oplossen. Veroudering verhoogt geleidelijk de prioriteit van het proces dat lang op de middelen heeft gewacht. Veroudering voorkomt dat een proces met lage prioriteit voor onbepaalde tijd op een hulpbron wacht.
Belangrijkste verschillen tussen impasse en uithongering in OS
- In een impasse gaat geen van de processen door voor uitvoering, elk proces wordt geblokkeerd in afwachting van de middelen die door een ander proces zijn verkregen. Aan de andere kant is verhongering een voorwaarde waarbij de processen met een hogere prioriteit de middelen continu kunnen verwerven door te voorkomen dat de processen met lage prioriteit middelen verwerven, resulterend in onbeperkte blokkering van processen met lage prioriteit.
- Een impasse ontstaat wanneer vier condities: wederzijdse uitsluiting, wacht en wacht, geen voorrang en circulaire wachttijd gelijktijdig plaatsvinden. Er is echter sprake van uithongering als procesprioriteiten zijn afgedwongen tijdens het toewijzen van bronnen, of als er ongecontroleerd resourcebeheer in het systeem is.
- De impasse wordt vaak aangeduid met de naam circular wait, terwijl de uithongering Lived lock wordt genoemd.
- In Deadlock worden de bronnen geblokkeerd door het proces, terwijl bij verhongering de processen continu worden gebruikt door de processen met hoge prioriteit.
- Een impasse kan worden voorkomen door het vermijden van de voorwaarden zoals wederzijdse uitsluiting, wachten en wachten, en circulair wachten en door toe te staan dat de processen die middelen gedurende een lange tijd aanhouden worden toegestaan. Aan de andere kant kan verhongering worden voorkomen door ouder worden .
Conclusie:
Zowel impasse als uithongering vertraagt de procesuitvoering door deze te blokkeren. Enerzijds kan een impasse ertoe leiden dat processen verhongeren en anderzijds kunnen uithongering de processen uit de patstelling halen.