Was ist der Banker-Algorithmus?
Der Banker-Algorithmus wird hauptsächlich im Bankensystem verwendet, um Deadlocks zu vermeiden. Es hilft Ihnen zu identifizieren, ob ein Darlehen vergeben wird oder nicht.
Dieser Algorithmus wird verwendet, um die Zuordnung sicher zu simulieren und die maximale Menge zu bestimmen, die für alle Ressourcen verfügbar ist. Außerdem werden alle möglichen Aktivitäten überprüft, bevor festgelegt wird, ob die Zuweisung fortgesetzt werden soll oder nicht.
Zum Beispiel gibt es X Kontoinhaber einer bestimmten Bank, und der Gesamtbetrag ihres Kontos beträgt G.
Wenn die Bank einen Autokredit bearbeitet, subtrahiert das Softwaresystem den für den Kauf eines Autos gewährten Kreditbetrag vom Gesamtgeld (G + Festgeld + Monatseinkommen + Gold usw.) der Bank.
Es wird auch geprüft, ob die Differenz mehr als G beträgt oder nicht. Es verarbeitet den Autokredit nur dann, wenn die Bank über ausreichend Geld verfügt, auch wenn alle Kontoinhaber das Geld G gleichzeitig abheben.
In diesem Betriebssystem-Tutorial lernen Sie:
- Was ist der Banker-Algorithmus?
- Notationen des Banker-Algorithmus
- Beispiel für den Banker-Algorithmus
- Eigenschaften des Banker-Algorithmus
- Nachteil des Banker-Algorithmus
Notationen des Banker-Algorithmus
Hier ist eine wichtige Notation, die im Banker-Algorithmus verwendet wird:
- X: Gibt die Gesamtzahl der Prozesse des Systems an.
- Y: Gibt die Gesamtzahl der im System vorhandenen Ressourcen an.
Verfügbar
[I: Y] gibt an, welche Ressource verfügbar ist.
Max
[l: X, l: Y]: Ausdruck der maximalen Anzahl von Ressourcen vom Typ j oder Prozess i
Zuweisung
[l: X, l: Y]. Geben Sie an, wo Sie eine Ressource vom Typ j erhalten haben
Brauchen
Drücken Sie aus, wie viele weitere Ressourcen in Zukunft zugewiesen werden können
Beispiel für den Banker-Algorithmus
Angenommen, wir haben 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 bereits gemäß der folgenden Matrixtabelle zugeordnet.
Prozessname | 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 |
Hier sind die zugewiesenen Ressourcen die Summe dieser Spalten:
Zugewiesen = (4, 2, 2, 3).
Wir erstellen auch eine Matrix, um die Nummer jeder Ressource anzuzeigen, die für alle Prozesse erforderlich ist. Diese Matrix heißt Need = (3,0,2,2)
Prozessname | 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 ist:
Verfügbar = Verfügbar - Zugewiesen
= (5, 2, 4, 3) - (4, 2, 2, 3)
= (1, 0, 2, 0)
Ressourcenanforderungsalgorithmus
Mit dem Ressourcenanforderungsalgorithmus können Sie das Systemverhalten darstellen, wenn ein bestimmter Prozess eine Ressourcenanforderung stellt.
Lassen Sie dies anhand der folgenden Schritte verstehen:
Schritt 1) Wenn eine insgesamt angeforderte Instanz aller Ressourcen kleiner als der Prozess ist, fahren Sie mit Schritt 2 fort.
Schritt 2) Wenn eine angeforderte Instanz jedes Ressourcentyps im Vergleich zu den verfügbaren Ressourcen jedes Typs geringer ist, wird sie zum nächsten Schritt verarbeitet. Andernfalls muss der Prozess warten, da nicht genügend Ressourcen verfügbar sind.
Schritt 3) Die Ressource wird wie im unten angegebenen Pseudocode gezeigt zugewiesen.
Available = Available - Request (y)Allocation(x) = Allocation(x) + Request(x)Need(x) = Need(x) - Request(x)
Dieser letzte Schritt wird ausgeführt, da das System davon ausgehen muss, dass Ressourcen zugewiesen wurden. Damit nach der Zuteilung weniger Ressourcen zur Verfügung stehen.
Eigenschaften des Banker-Algorithmus
Hier sind wichtige Merkmale des Banker-Algorithmus:
- Behalten Sie viele Ressourcen, die die Anforderungen mindestens eines Kunden erfüllen
- Wann immer ein Prozess alle seine Ressourcen erhält, muss er sie in einem begrenzten Zeitraum zurückgeben.
- Wenn ein Prozess eine Ressource anfordert, muss er warten
- Das System verfügt über eine begrenzte Anzahl von Ressourcen
- Erweiterte Funktion für maximale Ressourcenzuweisung
Nachteil des Banker-Algorithmus
Hier sind die Vor- und Nachteile der Verwendung des Banker-Algorithmus
- Ermöglicht dem Prozess nicht, seinen maximalen Bedarf während der Verarbeitung zu ändern
- Es erlaubt, dass alle Anfragen in einer begrenzten Zeit gewährt werden, aber ein Jahr ist ein fester Zeitraum dafür.
- Alle Prozesse müssen ihren maximalen Ressourcenbedarf im Voraus kennen und angeben.
Zusammenfassung:
- Der Banker-Algorithmus wird hauptsächlich im Bankensystem verwendet, um Deadlocks zu vermeiden. Es hilft Ihnen zu identifizieren, ob ein Darlehen vergeben wird oder nicht.
- In Banker-Algorithmen verwendete Notationen sind 1) Verfügbar 2) Maximal 3) Zuordnung 4) Bedarf
- Mit dem Ressourcenanforderungsalgorithmus können Sie das Systemverhalten darstellen, wenn ein bestimmter Prozess eine Ressourcenanforderung stellt.
- Der Banker-Algorithmus enthält viele Ressourcen, die die Anforderungen mindestens eines Kunden erfüllen
- Der größte Nachteil des Banker-Algorithmus besteht darin, dass der Prozess seinen maximalen Bedarf während der Verarbeitung nicht ändern kann.