Es gibt insgesamt vier Bedingungen, die alle erfüllt sein müssen, damit man von einen Deadlock sprechen kann. Diese vier Bedingungen für einen Deadlick sind im speziellen:
- Wechselseitiger Ausschluss: Jede Ressource ist entweder von genau einem Prozess in Gebrauch oder sie ist frei.
- Halten und Warten: Während ein Prozess auf Zuweisung von Ressourcen warten muss, behält er die ihm schon zugeteilten Ressourcen.
- Nicht Entziehbar: Ressourcen die einem Prozess zugeteilt worden sind, können nicht entzogen werden
- Zyklisches Warten: Zyklische Kette, bei der jeder Prozess mindestens eine Ressource hält, die von einem anderen Prozess gebraucht wird.
Möglichkeiten zur Überwindung von Deadlocks:
- Automatische Präemption
- Automatische Beendigung (Entzug der Ressource)
- Manuelle Intervention