Banker-Algorithmus in Operating-System [Beispiel]
⚡ Intelligente Zusammenfassung
Der Banker-Algorithmus ist eine Methode zur Vermeidung von Deadlocks, die prüft, ob die Ressourcenzuweisung das System in einem sicheren Zustand hält. Benannt nach dem Bankwesen, gewährt er eine Anfrage nur dann, wenn noch genügend Ressourcen vorhanden sind, um alle Prozesse zu bedienen.

Was ist der Banker-Algorithmus?
Banker-Algorithmus wird hauptsächlich im Bankensystem verwendet, um zu vermeiden Deadlock. Es hilft Ihnen zu erkennen, ob ein Kredit gewährt wird oder nicht.
Dieser Algorithmus wird zum Testen verwendet, um die Zuteilung sicher zu simulieren, um die maximal verfügbare Menge für alle Ressourcen zu bestimmen. Außerdem werden alle möglichen Aktivitäten geprüft, bevor entschieden wird, ob die Zuordnung fortgesetzt werden soll oder nicht.
Beispielsweise gibt es X Kontoinhaber einer bestimmten Bank, und der Gesamtbetrag auf ihren Konten beträgt G.
Wenn die Bank einen Autokredit bearbeitet, startet das Softwaresystem einen Subtract ist der Betrag, der für den Kauf eines Autos aus dem Gesamtvermögen (G + Festgeld + monatliches Einkommensprogramm + Gold usw.) der Bank gewährt wird.
Der Autokredit wird nur dann gewährt, wenn das verbleibende Guthaben noch G übersteigt, sodass alle Kontoinhaber jederzeit G abheben können.
Banker-Algorithmus-Notationen
Hier sind einige wichtige Notationen, die im Banker-Algorithmus verwendet werden:
- X: Gibt die Gesamtzahl der Prozesse im System an.
- Y: Gibt die Gesamtzahl der im System vorhandenen Ressourcen an.
Verfügbar
[1:Y] gibt an, wie viele Instanzen jedes Ressourcentyps verfügbar sind.
Max
[1:X, 1:Y]: Gibt die maximale Anzahl von Ressourcen vom Typ j an, die der Prozess i anfordern kann.
Allokierung
[1:X, 1:Y]: Gibt die Ressourcen vom Typ j an, die aktuell dem Prozess i zugewiesen sind.
Brauchst Du
Gibt an, wie viele Ressourcen jedes Prozesstyps i noch benötigt werden, um seine Aufgabe zu erfüllen.
Beispiel für den Banker-Algorithmus
Nehmen wir an, wir verfügen über die folgenden Ressourcen:
- 5 USB-Sticks
- 2 Drucker
- 4 Scanner
- 3 Festplatten
Hier haben wir einen Vektor erstellt, der die gesamten Ressourcen darstellt: Verfügbar = (5, 2, 4, 3).
Angenommen, es gibt vier Prozesse. Die verfügbaren Ressourcen sind gemäß der folgenden Matrixtabelle bereits zugewiesen.
| Process Name | USB-Sticks | Drucker | Scanner | Festplatte |
|---|---|---|---|---|
| P | 2 | 0 | 1 | 1 |
| Q | 0 | 1 | 0 | 0 |
| R | 1 | 0 | 1 | 1 |
| S | 1 | 1 | 0 | 1 |
| Gesamt | 4 | 2 | 2 | 3 |
Die zugewiesenen Ressourcen entsprechen der Summe dieser Spalten:
Zugeordnet = (4, 2, 2, 3).
Wir erstellen außerdem eine Matrix, um die Anzahl der einzelnen Ressourcen anzuzeigen, die für alle Prozesse erforderlich sind. Diese Matrix heißt Brauchst Du = (3, 0, 2, 2).
| Process Name | USB-Sticks | Drucker | Scanner | Festplatte |
|---|---|---|---|---|
| P | 1 | 1 | 0 | 0 |
| Q | 0 | 1 | 1 | 2 |
| R | 2 | 1 | 0 | 0 |
| S | 0 | 0 | 1 | 0 |
Der verfügbare Vektor lautet:
Verfügbar = Verfügbar – Zugewiesen
= (5, 2, 4, 3) – (4, 2, 2, 3)
= (1, 0, 2, 0)
Ressourcenanforderungsalgorithmus
Der Ressourcenanforderungsalgorithmus ermöglicht es Ihnen, das Systemverhalten darzustellen, wenn ein bestimmter Prozess eine Ressourcenanforderung stellt.
Lassen Sie uns dies anhand der folgenden Schritte verstehen:
Schritt 1) Wenn die Gesamtzahl der angeforderten Instanzen aller Ressourcen geringer ist als der Prozess, fahren Sie mit Schritt 2 fort.
Schritt 2) Wenn die angeforderten Instanzen jedes Ressourcentyps geringer sind als die verfügbaren Ressourcen jedes Typs, wird der Vorgang mit dem nächsten Schritt fortgesetzt. Andernfalls muss der Prozess aufgrund unzureichender Ressourcenverfügbarkeit warten.
Schritt 3) Die Ressourcenzuweisung erfolgt wie im untenstehenden Pseudocode dargestellt.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Dieser letzte Schritt wird durchgeführt, weil das System davon ausgehen muss, dass die Ressourcen bereits zugeteilt wurden, sodass nach der Zuteilung weniger Ressourcen zur Verfügung stehen.
Eigenschaften des Banker-Algorithmus
Hier die wichtigsten Merkmale des Banker-Algorithmus:
- Verfügt über zahlreiche Ressourcen, die die Anforderungen mindestens eines Kunden erfüllen.
- Immer wenn ein Prozess alle seine Ressourcen erhält, muss er sie innerhalb eines begrenzten Zeitraums zurückgeben.
- Wenn ein Prozess eine Ressource anfordert, muss er möglicherweise warten.
- Das System verfügt über eine begrenzte Anzahl an Ressourcen.
- Es bietet eine fortschrittliche Funktion zur maximalen Ressourcenzuweisung.
Nachteil des Banker-Algorithmus
Hier sind die Nachteile der Verwendung des Banker-Algorithmus:
- Es erlaubt dem Prozess nicht, seinen maximalen Bedarf während der Verarbeitung zu ändern.
- Es ermöglicht die Bewilligung aller Anträge innerhalb einer begrenzten Frist, wobei ein Jahr als fester Zeitraum dafür gilt.
- Alle Prozesse müssen ihren maximalen Ressourcenbedarf im Voraus kennen und angeben.
