Deadlock

Een deadlock is een situatie waarin twee computerprogramma's die dezelfde hulpbron delen, elkaar effectief de toegang tot de hulpbron ontzeggen, met als gevolg dat beide programma's niet meer functioneren.

De vroegste computerbesturingssystemen draaiden slechts één programma tegelijk. Alle bronnen van het systeem waren beschikbaar voor dit ene programma. Later draaiden de besturingssystemen meerdere programma's tegelijk, door ze in elkaar te schuiven. Programma's moesten van tevoren aangeven welke bronnen zij nodig hadden, zodat zij conflicten met andere programma's die op hetzelfde moment draaiden konden vermijden. Uiteindelijk boden sommige besturingssystemen een dynamische toewijzing van middelen. Programma's konden om verdere toewijzing van middelen verzoeken nadat zij waren begonnen te draaien. Dit leidde tot het probleem van de impasse. Hier is het eenvoudigste voorbeeld:

 Programma 1 vraagt bron A aan en ontvangt deze. Programma 2 vraagt bron B aan en ontvangt deze. Programma 1 vraagt bron B aan en wordt in de wachtrij geplaatst, in afwachting van de vrijgave van B. Programma 2 vraagt bron A aan en wordt in de wachtrij geplaatst, in afwachting van de vrijgave van A.