Definition

Deadlock (Verklemmung)

Ein sogenannter Deadlock (gegenseitiges Sperren, Verklemmung oder Systemblockade) ist eine Situation, bei der zwei oder mehr Computerprogramme die gleichen Ressourcen benutzen und sich gegenseitig daran hindern, auf diese zuzugreifen. Das Resultat ist, dass alle beteiligten Programme nicht mehr ordnungsgemäß funktionieren.

Die ersten Betriebssysteme für Computer konnten nur jeweils ein Programm gleichzeitig ausführen. Alle Ressourcen des Systems standen diesem Programm zur Verfügung. Später waren Betriebssysteme in der Lage, mehrere Programme gleichzeitig ausführen. Die Programme müssen im Vorfeld spezifizieren, welche Ressourcen sie verwenden wollen. Nur dann lassen sich Konflikte vermeiden, wenn mehrere gleichzeitig laufen. Irgendwann konnten einige Betriebssysteme Ressourcen dynamisch zuweisen. Programme durften während der Laufzeit weitere Ressourcen anfordern. Auf diese Weise konnte ein Deadlock entstehen. Nachfolgend finden Sie ein einfaches Beispiel:

Programm 1 fordert Ressource A an und bekommt sie zugewiesen

Programm 2 fordert Ressource B an und bekommt sie zugewiesen

Programm 1 fordert Ressource B an und wird in eine Warteschlange gestellt, muss also warten, bis B frei wird.

Programm 2 fordert Ressource A an und wird in eine Warteschlange gestellt, muss also warten, bis A frei wird.

In diesem Fall kann kein Programm weitermachen, bis das andere die entsprechende Ressource freigibt. Das Betriebssystem weiß natürlich nicht, wie es fortfahren soll. In so einer Situation ist die einzige Lösung, ein Programm zu beenden.

Die Behandlung von Deadlocks hatte große Auswirkungen auf die Entwicklung von Betriebssystemen und Datenbanken. Daten wurden strukturiert und die Reihenfolge der Anfragen wurde zwingend festgelegt, damit sich Deadlocks vermeiden lassen.

Diese Definition wurde zuletzt im April 2018 aktualisiert

Erfahren Sie mehr über Serverbetriebssysteme