Damit eine Verklemmung (Deadlock) entsteht, müssen vier Bedingungen gleichzeitig erfüllt sein: 1. **Wechselseitiger Ausschluss (Mutual Exclusion)**: Mindestens eine Ressource muss in einem nicht teilbaren Modus gehalten werden, d.h., sie kann nur von einem Prozess zur gleichen Zeit genutzt werden. 2. **Hold and Wait (Behalten und Warten)**: Ein Prozess, der bereits Ressourcen hält, kann zusätzliche Ressourcen anfordern und dabei die bereits gehaltenen Ressourcen behalten. 3. **Keine Präemption (No Preemption)**: Ressourcen können einem Prozess nicht zwangsweise entzogen werden; sie müssen freiwillig freigegeben werden. 4. **Kreisförmige Wartung (Circular Wait)**: Es muss eine zyklische Kette von Prozessen existieren, in der jeder Prozess auf eine Ressource wartet, die von einem anderen Prozess in der Kette gehalten wird. Die Bedingung, die du ansprichst, ist die **Kreisförmige Wartung (Circular Wait)**. Diese tritt ein, wenn eine zyklische Abhängigkeit zwischen den Prozessen besteht, d.h., Prozess A wartet auf eine Ressource, die von Prozess B gehalten wird, Prozess B wartet auf eine Ressource, die von Prozess C gehalten wird, und so weiter, bis schließlich ein Prozess auf eine Ressource wartet, die von Prozess A gehalten wird. Um diese Bedingung zu vermeiden, können verschiedene Strategien angewendet werden, wie z.B. das Vermeiden zyklischer Abhängigkeiten durch eine totale Ordnungsrelation der Ressourcen oder die Verwendung von Deadlock-Vermeidungsalgorithmen wie dem Bankier-Algorithmus.