Algorytm Bankiera w Operasystem tingowy [Przykład]

Co to jest algorytm bankiera?

Algorytm bankiera jest używany głównie w systemie bankowym, aby uniknąć impasu. Pomaga określić, czy pożyczka zostanie udzielona, ​​czy nie.

Algorytm ten służy do testowania bezpiecznej symulacji alokacji w celu określenia maksymalnej ilości dostępnej dla wszystkich zasobów. Sprawdza również wszystkie możliwe działania przed podjęciem decyzji, czy alokacja powinna być kontynuowana, czy nie.

Na przykład istnieje X posiadaczy rachunków w określonym banku, a łączna kwota pieniędzy na ich rachunkach wynosi G.

Kiedy bank przetwarza kredyt samochodowy, system oprogramowania odejmuje kwotę kredytu przyznanego na zakup samochodu od całkowitej kwoty środków (depozyt stały G+ + program miesięcznych dochodów + złoto itp.), którymi dysponuje bank.

Sprawdza również, czy różnica jest większa niż G. Kredyt samochodowy jest przetwarzany tylko wtedy, gdy bank ma wystarczającą ilość pieniędzy, nawet jeśli wszyscy posiadacze kont wypłacą pieniądze G jednocześnie.

Notacje algorytmu bankiera

Oto ważny zapis zastosowany w algorytmie Bankera:

  • X: Wskazuje całkowitą liczbę procesów systemu.
  • Y: Wskazuje całkowitą liczbę zasobów obecnych w systemie.

Dostępny

[I: Y] wskazuje, który zasób jest dostępny.

Max

[l:X,l:Y]: Wyrażenie maksymalnej liczby zasobów typu j lub procesu i

Przydział

[l:X, l:Y]. Wskaż, gdzie proces otrzymałeś zasób typu j

Potrzebować

Wyraź, o ile więcej zasobów można przydzielić w przyszłości

Przykład algorytmu Bankera

Załóżmy, że dysponujemy następującymi zasobami:

  • 5 pendrive’ów
  • 2 drukarki
  • 4 skanery
  • 3 dyski twarde

Tutaj stworzyliśmy wektor reprezentujący całkowite zasoby: Dostępne = (5, 2, 4, 3).

Załóżmy, że istnieją cztery procesy. Dostępne zasoby zostały już przydzielone zgodnie z poniższą tabelą macierzową.

Nazwa procesu Pendrive'y Drukarka Scanner dysk twardy
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Cena produktu z VAT: 4 2 2 3

Tutaj przydzielone zasoby to suma tych kolumn:

Przydzielone = (4, 2, 2, 3).

Tworzymy również matrycę wyświetlającą liczbę każdego zasobu wymaganego dla wszystkich procesów. Ta macierz nazywa się Potrzebować=(3,0,2,2)

Nazwa procesu Pendrive'y Drukarka Scanner dysk twardy
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Dostępny wektor będzie:

Dostępne=Dostępne-przydzielone

= (5, 2, 4, 3) -(4, 2, 2, 3)

=(1, 0, 2, 0)

Algorytm żądania zasobów

Algorytm żądania zasobu umożliwia reprezentowanie zachowania systemu, gdy określony proces wysyła żądanie zasobu.

Zrozumiemy to w następujących krokach:

Krok 1) Jeśli łączna żądana instancja wszystkich zasobów jest mniejsza niż proces, przejdź do kroku 2.

Krok 2) Gdy żądana instancja każdego typu zasobu jest mniejsza w porównaniu do dostępnych zasobów każdego typu, zostanie ona przetworzona do następnego kroku. W przeciwnym razie proces wymaga oczekiwania z powodu niedostępności wystarczających zasobów.

Krok 3) Zasób jest przydzielany w sposób pokazany w podanym poniżej pseudokodzie.

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

Ten ostatni krok jest wykonywany, ponieważ system musi założyć, że zasoby zostały przydzielone. Aby po alokacji było mniej zasobów dostępnych.

Charakterystyka algorytmu Bankera

Oto ważne cechy algorytmu bankiera:

  • Zachowaj wiele zasobów, które spełniają wymagania przynajmniej jednego klienta
  • Ilekroć proces otrzymuje wszystkie swoje zasoby, musi je zwrócić w ograniczonym czasie.
  • Kiedy proces żąda zasobu, musi poczekać
  • System ma ograniczoną liczbę zasobów
  • Zaawansowana funkcja maksymalnej alokacji zasobów

Wady algorytmu Bankera

Oto wady/wady korzystania z algorytmu bankiera

  • Nie pozwala procesowi na zmianę jego maksymalnego zapotrzebowania podczas przetwarzania
  • Pozwala na rozpatrzenie wszystkich wniosków w ograniczonym czasie, ale jeden rok to ustalony okres.
  • Wszystkie procesy muszą z wyprzedzeniem znać i określać swoje maksymalne zapotrzebowanie na zasoby.

Podsumowanie

  • Algorytm bankiera jest używany głównie w systemie bankowym w celu uniknięcia impas. Pomaga określić, czy pożyczka zostanie przyznana, czy nie.
  • Oznaczenia stosowane w algorytmach bankiera to: 1) Dostępność 2) Maksimum 3) Alokacja 4) Potrzeba
  • Algorytm żądania zasobu umożliwia reprezentowanie zachowania systemu, gdy określony proces wysyła żądanie zasobu.
  • Algorytm Bankera utrzymuje wiele zasobów, które spełniają wymagania przynajmniej jednego klienta
  • Największą wadą algorytmu bankiera jest to, że nie pozwala on procesowi na zmianę jego maksymalnego zapotrzebowania podczas przetwarzania.