3.2.12 Deadlocks

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(79 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<p>
 
{{#index:Deadlock|Verklemmung|Deadlock-Zustand|Zustand, Deadlock}}
<loop_index id="5fa978539ca4f">Deadlock</loop_index><loop_index id="5fa97853d244b">Verklemmung</loop_index><loop_index id="5fa97853d2456">Deadlock-Zustand</loop_index><loop_index id="5fa97853d245d">Zustand, Deadlock</loop_index>
Deadlocks sind eine unangenehme Sache, sie sollten besser nicht auftreten. Zunächst die Definition:
Deadlocks sind eine unangenehme Sache. Sie sollten besser nicht auftreten, aber das kann man leider nicht selbst bestimmen. Zunächst die Definition:
</p>
</p>
<br />
<br />
==== Definition: Deadlock-Zustand  ====
== Definition: Deadlock-Zustand  ==
<p>
<p>
<loop_area type="definition">
<loop_area type="definition">
<p>
<p>
Eine Menge von Prozessen befindet sich nach <cite>Tanenbaum+2009</cite> 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.
Eine Menge von Prozessen befindet sich nach <cite id="5fa978539ca5a">Tanenbaum+2009</cite> 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.
</p>
</p>
</loop_area>
</loop_area>
</p>
<p>
Wenn sich mehrere Prozesse in einem Deadlock-Zustand befinden, so sagt man auch vereinfachend: Es ist ein Deadlock aufgetreten.
</p>
<p>
Der englische Betriff ''Deadlock'' wird auf deutsch gerne mit ''Verklemmung'' übersetzt.
</p>
</p>


<br />
<br />
== Eine Analogie aus der Realität ==
<p>
<p>
In der realen Welt gibt es eine schöne Analogie zum Deadlock-Zustand von Prozessen:
In der realen Welt gibt es eine schöne Analogie zum Deadlock-Zustand von Prozessen:
Zeile 21: Zeile 28:
<loop_area type="practice">
<loop_area type="practice">
<p>
<p>
Wenn du dir vorstellen kannst, dass ein Auto im Strassenverkehr einen Prozess repräsentiert, dann zeigt [http://pieterpan.files.wordpress.com/2008/11/deadlock.jpg dieses Bild] einen Deadlock-Zustand einer Menge von Autos. <small>([http://www.skyscrapercity.com/showpost.php?p=33297124&postcount=55 Hier gibt es eine kleine Sammlung mit ähnlichen Fotos.])</small>
Wenn du dir vorstellen kannst, dass ein Auto im Straßenverkehr einen Prozess repräsentiert, dann zeigt [http://pieterpan.files.wordpress.com/2008/11/deadlock.jpg dieses Bild] einen Deadlock-Zustand einer Menge von Autos. <small>([http://www.skyscrapercity.com/showpost.php?p=33297124&postcount=55 Hier gibt es eine kleine Sammlung mit ähnlichen Fotos.])</small>
</p>
</p>
<p>
<p>
Zeile 34: Zeile 41:
</p>
</p>


<br />
== Ein Deadlock beim Philosophenproblem ==
<p>
Im Kapitel zum Philosophenproblem wurde bereits auf die Möglichkeit eines Deadlocks hingewiesen. Die folgenden Aufgaben greifen dieses wieder auf.
</p>


<br />
<br />
==== Aufgabe 1 ====
=== Aufgabe 1 ===
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Deadlock-Philosophen">
<loop_task title="Deadlock-Philosophen" id="5fa978539ca60">
<p>
<p>
<cite>Mandl+2013</cite> geht am Ende von Kapitel 6.2.2 auf das Philosophenproblem und eine dabei bestehende Deadlock-Gefahr ein.
<cite id="5fa978539ca65">Mandl+2013</cite> geht am Ende von Kapitel 6.2.2 auf das Philosophenproblem und eine dabei bestehende Deadlock-Gefahr ein.
</p>
</p>
<p>
<p>
Erläutere:
Erläutere:
* Unter welcher Bedingung tritt bei den speisenden Philosophen ein Deadlock-Zustand ein?
* Unter welcher Bedingung tritt bei den speisenden Philosophen ein Deadlock-Zustand ein?
* Welche Rolle spielt eine [[TSL-Befehl#Definition:_Atomare_Aktion|atomare Aktion]] dabei?
* Welche Rolle spielt eine [[Das_Problem_des_ung%C3%BCnstigsten_Moments#Definition:_Atomare_Aktion|atomare Aktion]] dabei?
</p>
</p>
</loop_task>
</loop_task>
Zeile 54: Zeile 67:
<br />
<br />


==== Aufgabe 2 ====
=== Aufgabe 2 ===
<p>
<p>
{{#index:Betriebsmittelgraph|Belegungs-Anforderungs-Graph|Zyklus im Betriebsmittelgraph|Konstruktion Betriebsmittelgraph}}
<loop_area type="task">
<loop_area type="task">
<loop_task title="Deadlocks erkennen mit Hilfe eines Betriebsmittelgraphen">
<loop_task title="Applet zum Philisophenproblem" id="5fa978539ca6b">
<p>
<p>
Die Universität Oldenburg stellt ein [http://olli.informatik.uni-oldenburg.de/Deadlock/Start.html Tutorial Deadlock-Algorithmen] bereit, bei dem u.a. auf die Erkennung eines Deadlock-Zustands eingegangen wird. Insbesondere kann die Erkennung mit Hilfe zweier Schritte erfolgen:
An der FH Köln wird ein [http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/ Semaphor Workshop] mit Java-Applets bereitgestellt, anhand derer das Philosophenproblem mit Hilfe von insgesamt fünf Semaphoren nachvollzogen werden kann.
* Schritt 1: [http://olli.informatik.uni-oldenburg.de/Deadlock/Html/Erkennung1_Aufbau.html Konstruktion eines Betriebsmittelgraphen]
* Schritt 2: [http://olli.informatik.uni-oldenburg.de/Deadlock/Html/Erkennung1_Zyklus.html Überprüfung eines Betriebsmittelgraphen auf Zyklen]
</p>
</p>
<p>
<p>
Mache dich mit diesem Tutorial vertraut!
<small>http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/phil/phil.html</small>
</p>
</p>
<p>
<p>
<small>Ein ''Betriebsmittelgraph'' wird in gängiger Literatur alternativ auch ''Belegungs-Anforderungs-Graph'' genannt.
Erzeuge in dem Applet einen Deadlock!
</small></p>
</p>
<p>
<small>Falls das Java-Applet in deinem Browser nicht startet, musst du eventuell die [[Java-Applets|Java-Sicherheitseinstellungen]] anpassen. Trage dort ein: http://www.nt.fh-koeln.de</small>
</p>
</loop_task>
</loop_task>
</loop_area>
</loop_area>
Zeile 75: Zeile 88:


<br />
<br />
==== Aufgabe 3 ====
<p>
<p>
<loop_area type="task">
== So geht es weiter: ==
<loop_task title="Zeichne den Betriebsmittelgraph!">
</p>
<p>
<p>
Gegeben seien die Prozesse ''P1'' bis ''P5'' und die Ressourcen ''Drucker'', ''Plotter'', ''Modem'', ''Magnetbandlaufwerk'' sowie ''Diskettenlaufwerk'' und ''CD-ROM-Laufwerk''. Jede Ressource sei genau einmal vorhanden.
<loop_area type="arrangement"><loop_toc> </loop_toc></loop_area>
</p>
</p>
<br />
== Alternative Webquelle zum Thema ==
<p>
<p>
Aktuell besteht folgende Ressourcenzuteilung und -anforderung:
<loop_area type="websource">
* ''P1'' belegt ''Plotter'' und fordert ''Diskettenlaufwerk'' an.
* ''P2'' belegt ''Magnetbandlaufwerk'' und fordert ''Plotter'' und ''Modem'' an.
* ''P3'' belegt ''Modem'' und fordert ''Drucker'' an.
* ''P4'' belegt ''Drucker'' und fordert ''CD-ROM-Laufwerk'' an.
* ''P5'' belegt ''Diskettenlaufwerk'' und fordert ''Magnetbandlaufwerk'' an.
</p>
<p>
<p>
Zeichne den Betriebsmittelgraph! Achte dabei auf die Pfeilrichtungen!
Operating Systems: Deadlocks<br />
<small>http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html</small>
</p>
</p>
<p>
<p>
Offensichtlich liegt hier ein Deadlock vor.
[http://www.cs.uic.edu/~jbell/ Dr. John T. Bell]<br />
* Woran ist dies im Betriebsmittelgraphen erkennbar?
Department of Computer Science<br />
* Welche Prozesse sind daran beteiligt?
University of Illinois, Chicago<br />
</p>
</p>
</loop_task>
</loop_area>
</loop_area>
</p>
</p>


<div class="autoit_do_not_print">
<br />
<br />
<hr />
<hr />
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
</sub>
</sub>
</div>

Aktuelle Version vom 21. Dezember 2023, 11:11 Uhr

Deadlocks sind eine unangenehme Sache. Sie sollten besser nicht auftreten, aber das kann man leider nicht selbst bestimmen. Zunächst die Definition:


Definition: Deadlock-Zustand

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.


Eine Analogie aus der Realität

In der realen Welt gibt es eine schöne Analogie zum Deadlock-Zustand von Prozessen:

Aus der Praxis

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?


Ein Deadlock beim Philosophenproblem

Im Kapitel zum Philosophenproblem wurde bereits auf die Möglichkeit eines Deadlocks hingewiesen. Die folgenden Aufgaben greifen dieses wieder auf.


Aufgabe 1

Aufgabe

Mandl 2013 geht am Ende von Kapitel 6.2.2 auf das Philosophenproblem und eine dabei bestehende Deadlock-Gefahr ein.

Erläutere:

  • Unter welcher Bedingung tritt bei den speisenden Philosophen ein Deadlock-Zustand ein?
  • Welche Rolle spielt eine atomare Aktion dabei?


Aufgabe 2

Aufgabe

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


So geht es weiter:


Alternative Webquelle zum Thema