Deadlock (Verklemmung)

Zyklisches Warten, bei dem Prozesse sich gegenseitig blockieren.

Ein Deadlock ist ein Zustand, in dem eine Gruppe von Prozessen dauerhaft blockiert ist, da jeder auf Ressourcen wartet, die von einem anderen gehalten werden.

Die 4 Coffman-Bedingungen müssen erfüllt sein: Wechselseitiger Ausschluss, Halten und Warten, Ununterbrechbarkeit und Zyklisches Warten.

        graph LR
  Center["Deadlock (Verklemmung)"]:::main
  Pre_process["process"]:::pre --> Center
  click Pre_process "/terms/process"
  Pre_mutex["mutex"]:::pre --> Center
  click Pre_mutex "/terms/mutex"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Erkläre es wie einem 5-Jährigen

Stell dir vier Autos an einer Kreuzung vor, die sich gegenseitig den Weg versperren. Keiner kann vorwärts fahren, bis ein anderer sich bewegt, und keiner kann zurück. Sie stehen ewig.

🤓 Expert Deep Dive

Der Bankier-Algorithmus vermeidet Deadlocks durch Ressourcenzuweisungsprüfungen. Ostrich-Algorithmus ignoriert das Problem (typisch für Unix/Windows).

🔗 Verwandte Begriffe

Voraussetzungen:

📚 Quellen