Navigationsleiste oben Startseite zur Inhaltsübersicht Deadlock-Bedingungen Deadlock-Erkennung

  Verfahren zur Behandlung von Deadlocks


Ignorieren des Problems

Das Ignorieren des Deadlockproblems ist wohl die einfachste Möglichkeit, mit Deadlocks umzugehen. Diese Vorgehensweise hört sich zwar sehr trivial und inakzeptabel an, kommt aber in der Praxis dennoch vor. So gibt es etwa in manchen UNIX-Betriebssystemen keine Mechanismen, mit denen Deadlocks erkannt geschweige denn automatisch behoben werden können. Als Begründung wird dabei angegeben, daß Deadlocks mit einer solch verschwindend kleinen Wahrscheinlichkeit auftreten, daß man nicht bereit ist, Erkennungs- oder Vermeidungsverfahren zu implementieren, die zu ständigen Einbußen in der Systemgeschwindigkeit oder -performance führen. Die Erkennung bzw. Vermeidung von Deadlocks ist nämlich bei manchen Verfahren mit einem nicht unerheblichen Aufwand verbunden, den nicht jeder in Kauf nehmen möchte.


Deadlock-Bedingungen nicht eintreten lassen

Damit in einem System ein Deadlock auftreten kann, müssen die vier Deadlock-Bedingungen erfüllt sein. Trifft auch nur eine dieser Bedingungen nicht zu, kann kein Deadlock entstehen. Aus dieser Tatsache läßt sich ableiten, daß man ein Deadlock verhindern kann, indem man mindestens eine dieser vier Deadlock-Bedingungen unmöglicht macht, d.h. man verhindert, daß alle Bedingungen gleichzeitig eintreten. Es gibt verschiedene Ansätze, wie man das Eintreten der einzelnen Deadlock-Bedingungen verhindern kann.


Deadlocks erkennen und beseitigen

Bei Verfahren der Deadlock-Erkennung versucht das System nicht, das Auftreten von Deadlocks zu verhindern. Stattdessen wird versucht, in einem System bereits eingetretene Deadlock-Situationen zu erkennen und diese schließlich zu beseitigen. Zu diesem Zweck wird zunächst bei verdächtigen Symptomen, die auf ein Deadlock hindeuten, ein Erkennungsalgorithmus gestartet. Solche verdächtigen Symptome könnten z.B. viele wartende Prozesse bei einem unbeschäftigten Prozessor sein. Der Erkennungsalgorithmus untersucht, ob wirklich eine Deadlock-Situation vorliegt, und wenn dies der Fall ist, welche Prozesse und Betriebsmittel für diese Situation verantwortlich sind. Hat er dies herausgefunden, versucht er danach, die Verklemmung zu beseitigen.


Deadlocks vermeiden

Eine letzte Möglichkeit ist die Vermeidung von Deadlocks durch das Betriebssystem. Dabei prüft das System vor jeder Zuteilung eines Betriebsmittels, ob das System durch eine solche Zuteilung in einem sicheren Zustand verbleiben würde, d.h. in einem Zustand, in dem keine Deadlockgefahr besteht. Ist dies der Fall, kann das gewünschte Betriebsmittel bedenkenlos zugeteilt werden. Besteht aber auch nur die geringste Gefahr, daß durch diese Betriebsmittel-Zuteilung ein unsicherer, deadlockbedrohter Zustand entstehen könnte, so wird die Betriebsmittelanforderung abgelehnt, um unter allen Umständen die Deadlocksicherheit des Systems zu garantieren.


In diesem Lernprogramm behandelte Verfahren

In diesem Lernprogramm werden spezielle Verfahren der Deadlockerkennung mit Hilfe von Betriebsmittelgraphen (wobei zwischen solchen Systemen unterschieden wird, in denen es von jedem Betriebsmitteltyp nur ein einziges Exemplar gibt, und solchen, in denen mehrere Exemplare jedes Typs vorhanden sein können) und ein Verfahren zur Deadlockvermeidung betrachtet:

Navigationsleiste unten nach oben Universität Oldenburg Deadlock-Bedingungen Deadlock-Erkennung
Letzte Änderung: 25.September 1999 © Copyright Andreas Lucks