Banker-Algorithmus in Operating-System [Beispiel]

Was ist der Banker-Algorithmus?

Banker-Algorithmus wird hauptsächlich im Bankensystem verwendet, um Blockaden zu vermeiden. Es hilft Ihnen festzustellen, 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 ihrer Konten beträgt G.

Wenn die Bank einen Autokredit bearbeitet, subtrahiert das Softwaresystem den Kreditbetrag, der für den Kauf eines Autos gewährt wurde, vom Gesamtgeld (G+ Festgeld + monatliches Einkommensprogramm + Gold usw.), über das die Bank verfügt.

Außerdem wird geprüft, ob die Differenz größer oder kleiner als G ist. Der Autokredit wird nur dann abgewickelt, wenn die Bank über ausreichend Geld verfügt, auch wenn alle Kontoinhaber gleichzeitig das Geld G abheben.

Banker-Algorithmus-Notationen

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ügbare

[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

Allokierung

[l:X,l:Y]. Geben Sie an, bei welchem ​​Prozess Sie eine Ressource vom Typ j erhalten haben

Brauchst Du

Geben Sie an, wie viele weitere Ressourcen in Zukunft zugewiesen werden können

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
Total 4 2 2 3

Hier sind die zugewiesenen Ressourcen die 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 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 uns dies anhand der folgenden Schritte verstehen:

Schritt 1) Wenn die insgesamt angeforderte Instanz aller Ressourcen kleiner ist als der Prozess, fahren Sie mit Schritt 2 fort.

Schritt 2) Wenn die Anzahl der angeforderten Instanzen jedes Ressourcentyps kleiner ist als die Anzahl der verfügbaren Ressourcen jedes Typs, wird der nächste Schritt ausgeführt. Andernfalls muss der Prozess warten, da nicht genügend Ressourcen verfügbar sind.

Schritt 3) Die Ressourcenzuteilung erfolgt wie im unten angegebenen Pseudocode gezeigt.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

Dieser letzte Schritt wird durchgeführt, da das System davon ausgehen muss, dass Ressourcen zugewiesen wurden. Damit sollten nach der Zuteilung weniger Ressourcen zur Verfügung stehen.

Eigenschaften des Banker-Algorithmus

Hier sind wichtige Merkmale des Bankalgorithmus:

  • Halten Sie viele Ressourcen bereit, die die Anforderungen von mindestens einem 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 warten
  • Das System verfügt über eine begrenzte Anzahl an Ressourcen
  • Erweiterte Funktion für maximale Ressourcenzuteilung

Nachteil des Banker-Algorithmus

Hier sind die Vor- und Nachteile der Verwendung des Bankalgorithmus aufgeführt

  • Erlaubt dem Prozess nicht, seinen Maximalbedarf während der Verarbeitung zu ändern
  • Es ermöglicht, dass allen Anträgen innerhalb einer begrenzten Zeit stattgegeben wird, ein fester Zeitraum hierfür ist jedoch ein Jahr.
  • Alle Prozesse müssen ihren maximalen Ressourcenbedarf im Voraus kennen und angeben.

Zusammenfassung

  • Der Banker-Algorithmus wird hauptsächlich im Bankensystem zur Vermeidung verwendet Deadlock. Es hilft Ihnen zu erkennen, ob ein Kredit gewährt wird oder nicht.
  • Die in den Algorithmen der Banker verwendeten Notationen sind 1) Verfügbar 2) Max 3) Zuteilung 4) Bedarf
  • Mit dem Ressourcenanforderungsalgorithmus können Sie das Systemverhalten darstellen, wenn ein bestimmter Prozess eine Ressourcenanforderung stellt.
  • Der Banker-Algorithmus hält viele Ressourcen bereit, die die Anforderungen mindestens eines Kunden erfüllen
  • Der größte Nachteil des Bankalgorithmus besteht darin, dass er dem Prozess nicht erlaubt, seinen Maximalbedarf während der Verarbeitung zu ändern.