Wenn es um die Erkennung von Deadlocks geht, dann impliziert dies immer, dass der Deadlock-Zustand bereits eingetreten ist. Irgendeine Art von negativen Folgen wird sich daraus zwangsläufig ergeben.
Eine andere Strategie ist die Vermeidung von Deadlocks. Ein Betriebssystem könnte von vorneherein so konstruiert werden, dass Deadlocks gar nicht möglich sind.
Wenn man ein Betriebssystem entwickelt, welches mindestens eine der vier Bedingungen für Deadlocks unerfüllbar macht, dann können Deadlocks überhaupt nicht auftreten!
Man betrachte also einzelne Möglichkeiten in dieser Richtung. Die folgenden Aufgaben beschäftigen sich damit.
Recherchiere und erläutere:
Was versteht man unter Spooling? (Zum Beispiel bei einem Drucker-Spooler.)
Spooling ist prinzipiell geeignet, um Deadlocks zu vermeiden. Welche der vier Bedingungen macht Spooling unerfüllbar?
Denke dir folgende Situation in einer Bank:
Es werden von einem Großrechner der Bank viele Überweisungen durchgeführt. Der Einfachheit halber (für diese Aufgabe) nur innerhalb derselben Bank.
Zu einer Überweisung gehören drei Dinge:
Für jede Überweisung startet das Betriebssystem des Großrechners einen separaten Prozess. Dieser Prozess zur Durchführung einer einzelnen Überweisung geht nun wie folgt vor:
Die beiden Konten A und B sind damit die vom Überweisungsprozess benötigten Betriebsmittel.
Erläutere eine Situation, bei der es durch die zu erledigenden Überweisungen zu einem Deadlock kommt! Zeichne dazu den Betriebsmittelgraphen.
Es geht wieder um Überweisungen in einer Bank, gemäß der vorangegangenen Aufgabe. Der Prozess zur Durchführung einer einzelnen Überweisung geht diesmal nach einem besonderen Muster vor.
Für jede Überweisung:
Kann bei dieser Vorgehensweise noch ein Deadlock auftreten?
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png