Deadlocks sind eine unangenehme Sache. Sie sollten besser nicht auftreten, aber das kann man leider nicht selbst bestimmen. Zunächst die Definition:
Eine Menge von Prozessen befindet sich nach Tanenbaum 2009 in einem Deadlock-Zustand, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann.
Wenn sich mehrere Prozesse in einem Deadlock-Zustand befinden, so sagt man auch vereinfachend: Es ist ein Deadlock aufgetreten.
Der englische Betriff Deadlock wird auf deutsch gerne mit Verklemmung übersetzt.
In der realen Welt gibt es eine schöne Analogie zum Deadlock-Zustand von Prozessen:
Wenn du dir vorstellen kannst, dass ein Auto im Straßenverkehr einen Prozess repräsentiert, dann zeigt dieses Bild einen Deadlock-Zustand einer Menge von Autos. (Hier gibt es eine kleine Sammlung mit ähnlichen Fotos.)
In Anbetracht dieser Bilder kannst du überlegen, ob die Menge der Prozesszustände noch um einen ergänzt werden sollte. Welcher Zustand ist damit gemeint?
Im Kapitel zum Philosophenproblem wurde bereits auf die Möglichkeit eines Deadlocks hingewiesen. Die folgenden Aufgaben greifen dieses wieder auf.
Mandl 2013 geht am Ende von Kapitel 6.2.2 auf das Philosophenproblem und eine dabei bestehende Deadlock-Gefahr ein.
Erläutere:
An der FH Köln wird ein Semaphor Workshop mit Java-Applets bereitgestellt, anhand derer das Philosophenproblem mit Hilfe von insgesamt fünf Semaphoren nachvollzogen werden kann.
http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/phil/phil.html
Erzeuge in dem Applet einen Deadlock!
Falls das Java-Applet in deinem Browser nicht startet, musst du eventuell die Java-Sicherheitseinstellungen anpassen. Trage dort ein: http://www.nt.fh-koeln.de
Operating Systems: Deadlocks
http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html
Dr. John T. Bell
Department of Computer Science
University of Illinois, Chicago
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png