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).
📚 Quellen
1. Deadlock
6. medium.com