Zum Inhalt springen

Informatik · Klasse 12 · aktualisiert

Coffman-Bedingungen: Deadlocks sicher erkennen

Du lernst die vier Coffman-Bedingungen kennen, prüfst damit eine Ressourcensituation und begründest eine passende Maßnahme gegen Deadlocks.

0 von 11 Aufgaben gelöst

Coffman-Bedingungen: Deadlocks sicher erkennen

Kurz gesagt

Nach Coffman et al. sind vier Bedingungen zusammen hinreichend für die Möglichkeit einer Verklemmung: Mutual Exclusion, Hold and Wait, No Preemption und Circular Wait. Wird mindestens eine davon nicht erfüllt, spricht man von Verhinderung.

Du druckst, speicherst und surfst, und im Hintergrund teilen sich Prozesse Drucker, Dateien und Speicher. Manchmal wartet dann jeder auf jeden, und nichts geht mehr. Mit vier Bedingungen erkennst du, ob so eine Verklemmung möglich ist, und du kannst begründen, wie man sie verhindert.

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 Betriebsmittel (auch Ressource) ist ein Systemelement, das ein Prozess zur korrekten Ausführung braucht, zum Beispiel Festplatte, Arbeitsspeicher oder Drucker. Das Betriebssystem regelt den Zugriff darauf. Ein Deadlock (Verklemmung) ist eine zyklische Wartesituation zwischen mehreren Prozessen: Jeder beteiligte Prozess wartet auf mindestens ein Betriebsmittel, das ein anderer beteiligter Prozess bereits exklusiv belegt hat.

Nach Coffman et al. sind die folgenden vier Bedingungen hinreichend für die Möglichkeit einer Verklemmung.

Mutual Exclusion (gegenseitiger Ausschluss): Der Zugriff auf ein Betriebsmittel ist exklusiv. Nur einem einzigen Prozess wird der Zugriff gestattet. Eine Datei, auf die schreibend zugegriffen wird, kann zum Beispiel nur exklusiv von einem Prozess genutzt werden. Gelesen werden kann eine Datei dagegen von mehreren Prozessen gleichzeitig.

Hold and Wait: Die Prozesse fordern Betriebsmittel an, behalten aber zugleich den Zugriff auf andere.

No Preemption: Die Betriebsmittel werden ausschließlich durch die Prozesse freigegeben, weil der Ressourcenzugriff eines Prozesses nicht unterbrochen werden kann. Ein Drucker ist ein nicht-entziehbares Betriebsmittel: Er muss bis zur Beendigung der Tätigkeit beim Prozess bleiben. Speicher dagegen ist entziehbar.

Circular Wait (zirkuläres Warten): Mindestens zwei Prozesse besitzen bezüglich der Betriebsmittel eine zirkuläre Abhängigkeit.

Definition

Deadlock

Ein Deadlock (Verklemmung) ist ein Zustand mit einer zyklischen Wartesituation zwischen mehreren Prozessen. Jeder beteiligte Prozess wartet auf ein Betriebsmittel, das ein anderer beteiligter Prozess exklusiv belegt hat.

BedingungBedeutung für die Betriebsmittel
Mutual ExclusionNur ein einziger Prozess darf auf das Betriebsmittel zugreifen.
Hold and WaitEin Prozess behält Betriebsmittel und fordert weitere an.
No PreemptionBetriebsmittel werden ausschließlich vom Prozess selbst freigegeben.
Circular WaitMindestens zwei Prozesse hängen zirkulär voneinander ab.

Teste dich

LeichtWas bedeutet No Preemption für ein Betriebsmittel?
MittelWas gilt bei Hold and Wait?

Alles auf einen Blick

Coffman-Bedingungen

  • Deadlock

    Eine zyklische Wartesituation zwischen Prozessen, die auf Betriebsmittel warten, die andere exklusiv belegt haben.

  • Vier Bedingungen

    Mutual Exclusion, Hold and Wait, No Preemption und Circular Wait sind nach Coffman et al. zusammen hinreichend für die Möglichkeit einer Verklemmung.

  • Prüfen

    Frage die vier Bedingungen nacheinander am Fall ab und belege jede.

  • Grenze

    Ein Prozess, der nur ein Betriebsmittel benötigt, kann nicht verklemmen.

  • Verhinderung

    Mindestens eine der vier Bedingungen wird nicht erfüllt.

  • Maßnahmen

    Betriebsmittel entziehen, alles auf einmal zuteilen, Zugriff auflösen (zum Beispiel Spooling) oder linear ordnen.

Musteraufgabe · Schritt für Schritt

Kreuzung mit vier Fahrzeugen prüfen (ausgedachte Annahmen)

  1. 1Lage: Von allen vier Seiten fahren Fahrzeuge ein Stück in die Kreuzung hinein. Jedes Kreuzungsviertel ist eine Ressource, und jedes Fahrzeug benötigt die zwei Viertel vor sich.
  2. 2Schritt 1: Die ganze Kreuzung als eine Ressource zu sehen, reicht nicht. Wir teilen sie in vier Kreuzungsviertel auf.
  3. 3Schritt 2, Mutual Exclusion: Annahme: In einem Viertel steht höchstens ein Fahrzeug. Erfüllt.
  4. 4Schritt 3, No Preemption: Annahme: Ein Fahrzeug kann sein Viertel nicht an ein anderes abgeben. Erfüllt.
  5. 5Schritt 4, Hold and Wait: Jedes Fahrzeug steht schon in einem Viertel und wartet auf das zweite. Erfüllt.
  6. 6Schritt 5, Circular Wait: Jedes Fahrzeug wartet auf ein Viertel, das ein anderes Fahrzeug im Kreis belegt. Erfüllt.
  7. 7Ergebnis: Unter diesen Annahmen sind alle vier Bedingungen erfüllt. Eine Verklemmung ist möglich.

Fehler finden

Prüfe die Aussagen zu Jₕ und Jₙ mit R₁ und R₂ 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.

Bei behält ein Prozess Betriebsmittel, während er weitere anfordert. Von Verhinderung spricht man, wenn mindestens der vier Bedingungen nicht erfüllt wird. Um Circular Wait auszuschließen, werden die Betriebsmittel .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Coffman-Bedingungen

LeichtWas beschreibt die Bedingung Circular Wait?
MittelAusgedachter Fall: Prozess X hält das Mikrofon und fordert die Kamera. Prozess Y hält die Kamera und fordert das Mikrofon. Beide Betriebsmittel sind exklusiv, können den Prozessen aber jederzeit entzogen werden. Was ergibt die Prüfung?
SchwerAusgedachter Fall: Mehrere Prozesse schicken Druckaufträge, die in eine Warteschlange kommen und nacheinander gedruckt werden (Spooling). Welche Bedingung wird so beseitigt?

Weiterlesen in Informatik