Belangrijkste verschil: impasse verwijst naar de situatie waarin processen in circulaire wachten op de resources. Aan de andere kant treedt uithongering op wanneer een proces onbeperkt wacht op een hulpbron. Impasse betekent hongersnood, maar honger houdt geen impasse in.
Een eenvoudig voorbeeld hiervan is een systeem met twee tapedrives en twee processen bezetten elk een tapedrive en wachten op de andere als de vereiste om verder te gaan.
Het is belangrijk om te vermelden dat de situatie van deadlock occus is als deze vier voorwaarden allemaal tegelijk gelden:
- Wederzijdse uitsluiting - een bron kan slechts door een proces tegelijk worden gebruikt
- Wacht en wacht - een proces dat ten minste één resource bezet, moet een extra resource verwerven die wordt bezet door een ander proces, en daarom wacht dit proces tot die resource wordt vrijgegeven
- Geen bevoorrechting - hulpbron wordt alleen vrijgemaakt door het proces dat het heeft bezet, na voltooiing van zijn taak.
- Circular wait - alle processen in de sets wachten op een resource die wordt vastgehouden door andere processen, waaronder zelfs het laatste proces in de set.
Het gebeurt als een proces van slechtere prioriteit en krijgt de bron te danken aan een constante stroom van processen met een hogere prioriteit dan het, en daarom zou het proces voor altijd moeten kunnen wachten. De oplossing voor het verhongeren is ervoor te zorgen dat een onafhankelijke beheerder de toewijzingen van middelen beheert, zodat elk proces de bron op een bepaald moment krijgt. Willekeurige en ongecontroleerde selecties of competitie moeten worden vermeden om uithongering te voorkomen. Impasse betekent hongersnood, maar honger houdt geen impasse in.
Daarom zijn impasse en verhongering van elkaar verschillend. Een impasse treedt op wanneer geen van de processen in de set kan doorgaan door de bezetting van de vereiste bronnen door een ander proces. Aan de andere kant treedt uithongering op wanneer een proces wacht op een onbepaalde tijd om de benodigde hulpbron te krijgen.
Vergelijking tussen impasse en hongersnood:
Impasse | uithongering | |
Definitie | Een impasse treedt op wanneer geen van de processen in de set kan doorgaan door de bezetting van de vereiste bronnen door een ander proces | Hongersnood treedt op wanneer een proces voor onbepaalde tijd wacht om de benodigde hulpbron te krijgen. |
Andere naam | Circulair wachten | Lived lock |
Opkomende omstandigheden | Deze vier voorwaarden ontstaan tegelijkertijd: wederzijdse uitsluiting, vasthouden en wachten, geen bevoorrechting en circulair verstand | Ongecontroleerd beheer van middelen Procesprioriteiten zijn strikt handhaven Schaarste aan middelen |
Technieken voor vermijden / voorkomen |
|
|
Vooruitgang | Geen enkel proces kan vooruitgang boeken | Afgezien van het slachtofferproces kunnen andere processen vorderen of doorgaan |
Einde | Vereist externe interventie | Kan al dan niet externe tussenkomst vereisen |