Beschreibung
Der Banker's Algorithmus wird zum Erkennen einer Deadlock-Situation genutzt. Dazu werden die verfügbaren Ressourcen und die Prozesse aufgelistet. Die Ressourcen gliedern sich in gesamte Ressourcen und verfügbare Ressourcen. Die Prozesse erhalten ebenfalls zwei Eigenschaften: Zum einen die Ressourcen, die bereits besetzt werden, zum anderen die noch benötigten Ressourcen.
Dann werden alle Prozesse - sofern möglich - nacheinander abgearbeitet und die belegten zu den verfügbaren Ressourcen zugeführt. Nach Ausführung des Algorithmus steht fest, ob ein Deadlock vermeidbar ist oder nicht. Kommt der Banker Algorithmus zu einem erfolgreichen Ende, kann unter Umständen durch "unbedachte" Ausführung der Prozesse trotzdem ein Deadlock entstehen.
Voraussetzungen
Gegeben sind vor Ausführung des Algorithmus folgende Informationen:
- m Ressourcen
- n Threads/Prozesse (mit belegten Ressourcen)
- sowie die noch benötigten Ressourcen der Prozesse
Gesucht wird dann die Information, ob ein Deadlock auftreten kann, oder nicht.
Gesamtressourcen
Verfügbare Ressourcen
von Prozess i belegte Ressourcen
von Prozess i benötigte Ressourcen
alle Prozesse i sind nicht markiert.

Beispiel
Start des Algorithmus
1. Schritt: Prozess 2 ausführen
2. Schritt: Prozess 1 ausführen
3. Schritt: Kein Prozess mehr ausführbar
- DEAD LOCK!