|
Der Bankier-Algorithmus (englisch Banker's algorithm) 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.
Formale Beschreibung
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!
|