Zum Inhalt springen

Informatik · Klasse 12 · aktualisiert

Deadlock: erkennen, verhindern und auflösen

Du erkennst einen Deadlock, prüfst die vier Coffman-Bedingungen, liest Zuteilungsgraphen und unterscheidest Prävention, Vermeidung und Auflösung.

0 von 11 Aufgaben gelöst

Deadlock: erkennen, verhindern und auflösen

Kurz gesagt

Ein Deadlock ist ein Zustand, in dem mehrere Prozesse im Kreis aufeinander warten. Im Zuteilungsgraphen ist der Wartezyklus ein Zyklus in Pfeilrichtung. Prävention verhindert Deadlocks, Vermeidung überwacht die Prozesse, Auflösung beseitigt einen eingetretenen Deadlock.

Vier Fahrzeuge fahren von allen vier Seiten ein Stück in eine Kreuzung und blockieren einander. Auch Programme können sich so festfahren. Das nennt man Deadlock. Hier lernst du, ihn zu erkennen und mit ihm umzugehen.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

3 Abschnitte

Ein Deadlock (auch Verklemmung) ist ein Zustand, in dem mehrere Prozesse im Kreis aufeinander warten. Jeder beteiligte Prozess wartet darauf, dass ein Betriebsmittel frei wird, das ein anderer beteiligter Prozess schon für sich allein belegt hat. Betriebsmittel (Ressourcen) sind zum Beispiel ein Bildschirm oder ein Drucker.

Verklemmungen können in Systemen eintreten, die mehrere Prozesse parallel ablaufen lassen können und bei denen die Reihenfolge der Betriebsmittelvergabe nicht festgelegt ist. Liegen die Ausführungszeiten der im Kreis abhängigen Prozesse weit genug auseinander, kommt es nicht zum Deadlock. Ein Prozess, der nur ein Betriebsmittel benötigt, kann nicht verklemmen.

Nach Coffman et al. sind vier Bedingungen hinreichend für die Möglichkeit einer Verklemmung (siehe Tabelle). Gelten alle vier, ist ein Deadlock also möglich, aber nicht sicher. Wird mindestens eine Bedingung nicht erfüllt, spricht man von einer Verhinderung. Im Ablauf mit π1 und π2 siehst du nur zwei Bedingungen: Hold and Wait und Circular Wait. Ob die Betriebsmittel exklusiv sind und ob man sie entziehen kann, bleibt in diesem Beispiel offen. Aus diesem einen Beispiel folgt daher nicht, dass dort alle vier gelten.

Zwei Abgrenzungen: Bei einem Deadlock um Betriebsmittel müssen immer mehrere gemeinsam genutzte Ressourcen vorhanden sein, gegenseitiges Blockieren allein genügt nicht. Die Kreuzung ist deshalb nur ein Deadlock-Beispiel, wenn du sie in mehrere Ressourcen aufteilst, etwa in Kreuzungsviertel. Beim Livelock verharren die Prozesse nicht im Wartezustand, sondern wechseln ständig zwischen Zuständen, aus denen sie nicht mehr entkommen. Jeder Prozess bleibt dabei aktiv, kann aber seine Aufgabe nicht abarbeiten.

Definition

Deadlock

Ein Zustand, in dem mehrere Prozesse im Kreis aufeinander warten. Jeder wartet auf ein Betriebsmittel, das ein anderer beteiligter Prozess schon exklusiv belegt hat.

Beispiel: Bildschirm und Drucker

  1. 1π1 hat den Bildschirm und braucht zusätzlich den Drucker.
  2. 2Der Drucker gehört π2, und π2 fordert den Bildschirm.
  3. 3Hold and Wait: π1 hat den Bildschirm und braucht gleichzeitig den Drucker.
  4. 4Circular Wait: π1 und π2 brauchen jeweils, was der andere hat.
  5. 5Mutual Exclusion und No Preemption: bleiben in diesem Beispiel offen.
BedingungBedeutungIm Bildschirm-Drucker-Ablauf
Mutual ExclusionEin Betriebsmittel ist nur einem einzigen Prozess zugänglichbleibt offen
Hold and WaitProzesse fordern Mittel an und behalten dabei andereπ1 hat den Bildschirm, braucht den Drucker
No PreemptionNur die Prozesse selbst geben Mittel frei, der Zugriff wird nicht unterbrochenbleibt offen
Circular WaitMindestens zwei Prozesse hängen bei den Mitteln im Kreis voneinander abπ2 hat den Drucker, fordert den Bildschirm

Teste dich

MittelWas zeigt der Ablauf mit π1, π2, Bildschirm und Drucker über die vier Bedingungen?
MittelWas folgt, wenn alle vier Coffman-Bedingungen gelten?

Alles auf einen Blick

Deadlock

  • Deadlock

    Mehrere Prozesse warten im Kreis aufeinander, jeder auf ein Betriebsmittel, das ein anderer belegt.

  • Coffman-Bedingungen

    Vier Bedingungen sind hinreichend für die Möglichkeit einer Verklemmung, nicht für ihr sicheres Eintreten.

  • Zuteilungsgraph

    Rj → Pi heißt hält, Pk → Rj heißt wartet. Der Wartezyklus ist ein Zyklus in Pfeilrichtung.

  • Prävention

    Mindestens eine der vier Bedingungen wird nicht erfüllt.

  • Vermeidung

    Der Deadlock bleibt theoretisch möglich, das System überwacht die Prozesse.

  • Auflösung

    Ein eingetretener Deadlock wird beseitigt, meist mit Datenverlust.

Musteraufgabe · Schritt für Schritt

Vermeidung: Reihenfolge für π1 und π2 prüfen

  1. 1Gegeben: Das Betriebssystem hat noch 3 Betriebsmittel frei.
  2. 2π1 hat 5 Betriebsmittel und braucht noch 3. π2 hat 2 und fordert noch 8.
  3. 3Schritt 1: π1 bekommt die 3 freien Betriebsmittel. Frei: 3 − 3 = 0.
  4. 4Schritt 2: π1 hat nun alles und läuft vollständig. Danach gibt es 5 + 3 = 8 Betriebsmittel zurück. Frei: 0 + 8 = 8.
  5. 5Schritt 3: π2 braucht noch 8. Das passt: 8 ≤ 8.
  6. 6Ergebnis: Die Reihenfolge π1, dann π2 lässt beide Prozesse enden. Der Zustand ist sicher.
  7. 7Gegenprobe: Bekäme π2 zuerst die 3 freien Mittel, fehlten ihm noch 5.

Fehler finden

Prüfe die Aussagen zum Bankieralgorithmus mit vier Ressourcenarten In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Eine Kante von R1 nach P2 bedeutet: P2 R1. Ist der Zustand beim Bankieralgorithmus unsicher, ist ein Deadlock . Wird mindestens eine der vier Coffman-Bedingungen nicht erfüllt, spricht man von .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Deadlock

LeichtZwei Prozesse sind ständig aktiv und wechseln dauernd ihre Zustände, kommen aber nicht weiter. Was liegt vor?
MittelErfundenes Beispiel: Die Kanten sind R1→P1, P1→R2, R2→P2 und P2→R1. Welcher Zyklus in Pfeilrichtung steckt darin?
SchwerEine Maßnahme soll die Bedingung Hold and Wait verhindern. Welche passt?

Weiterlesen in Informatik