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.
Ten algorytm służy do testowania bezpiecznego symulowania alokacji w celu określenia maksymalnej dostępnej kwoty dla wszystkich zasobów. Sprawdza również wszystkie możliwe działania przed ustaleniem, czy alokacja powinna być kontynuowana, czy nie.
Na przykład w danym banku jest X posiadaczy rachunków, a łączna kwota pieniędzy na ich kontach to G.
Kiedy bank przetwarza kredyt samochodowy, system oprogramowania odejmuje kwotę pożyczki udzielonej na zakup samochodu od całkowitej kwoty pieniędzy (G + Stały depozyt + Miesięczny program dochodów + Złoto itp.), Które posiada bank.
Sprawdza również, czy różnica jest większa lub większa niż G. Przetwarza kredyt samochodowy tylko wtedy, gdy bank ma wystarczającą ilość pieniędzy, nawet jeśli wszyscy posiadacze rachunków wypłacają pieniądze G jednocześnie.
W tym samouczku dotyczącym systemu operacyjnego dowiesz się:
- Co to jest algorytm bankiera?
- Notacje algorytmów bankiera
- Przykład algorytmu Bankiera
- Charakterystyka algorytmu bankiera
- Wada algorytmu Bankiera
Notacje algorytmów bankiera
Oto ważna notacja używana w algorytmie Bankiera:
- X: wskazuje całkowitą liczbę procesów w systemie.
- Y: Wskazuje całkowitą liczbę zasobów obecnych w systemie.
Dostępny
[I: Y] wskazują, który zasób jest dostępny.
Maks
[l: X, l: Y]: Wyrażenie maksymalnej liczby zasobów typu j lub procesu i
Przydział
[l: X, l: Y]. Wskaż, w którym procesie otrzymałeś zasób typu j
Potrzeba
Wyraź, o ile więcej zasobów można przydzielić w przyszłości
Przykład algorytmu Bankiera
Załóżmy, że mamy następujące zasoby:
- 5 pendrive'ów
- 2 drukarki
- 4 skanery
- 3 dyski twarde
Tutaj utworzyliśmy wektor reprezentujący całkowite zasoby: Dostępne = (5, 2, 4, 3).
Załóżmy, że istnieją cztery procesy. Dostępne zasoby są już przydzielone zgodnie z poniższą tabelą tabelaryczną.
Nazwa procesu | Pendrive'y | Drukarka | Skaner | Dysk twardy |
---|---|---|---|---|
P. | 2 | 0 | 1 | 1 |
Q | 0 | 1 | 0 | 0 |
R | 1 | 0 | 1 | 1 |
S | 1 | 1 | 0 | 1 |
Całkowity | 4 | 2 | 2 | 3 |
Tutaj przydzielone zasoby to suma tych kolumn:
Przydzielono = (4, 2, 2, 3).
Tworzymy również macierz, aby wyświetlić liczbę każdego zasobu wymaganego dla wszystkich procesów. Ta macierz nazywa się Potrzeba = (3,0,2,2)
Nazwa procesu | Pendrive'y | Drukarka | Skaner | Dysk twardy |
---|---|---|---|---|
P. | 1 | 1 | 0 | 0 |
Q | 0 | 1 | 1 | 2 |
R | 2 | 1 | 0 | 0 |
S | 0 | 0 | 1 | 0 |
Dostępnym wektorem 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 zasobów umożliwia reprezentowanie zachowania systemu, gdy określony proces wysyła żądanie zasobu.
Zrozummy to, wykonując następujące kroki:
Krok 1) Gdy całkowita żą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 z dostępnymi zasobami każdego typu, zostanie ona przetworzona w następnym kroku. W przeciwnym razie proces wymaga czekania z powodu niedostępności wystarczających zasobów.
Krok 3) Zasób jest przydzielany zgodnie z poniższym podanym pseudokodem.
Available = Available - Request (y)Allocation(x) = Allocation(x) + Request(x)Need(x) = Need(x) - Request(x)
Ten ostatni krok jest wykonywany, ponieważ system musi przyjąć, że zasoby zostały przydzielone. Tak więc po przydzieleniu dostępnych zasobów powinno być mniej.
Charakterystyka algorytmu bankiera
Oto ważne cechy algorytmu bankiera:
- Przechowuj wiele zasobów, które spełniają wymagania co najmniej jednego klienta
- Za każdym razem, gdy proces zbiera wszystkie swoje zasoby, musi je zwrócić w ograniczonym okresie.
- Gdy proces żąda zasobu, musi czekać
- System ma ograniczoną liczbę zasobów
- Zaawansowana funkcja zapewniająca maksymalną alokację zasobów
Wada algorytmu Bankiera
Oto wady / wady korzystania z algorytmu bankiera
- Nie pozwala procesowi na zmianę jego maksymalnej potrzeby podczas przetwarzania
- Pozwala na rozpatrywanie wszystkich wniosków w ograniczonym czasie, ale jeden rok to ustalony okres.
- Wszystkie procesy muszą znać i określać z wyprzedzeniem swoje maksymalne zapotrzebowanie na zasoby.
Podsumowanie:
- Algorytm bankiera jest używany głównie w systemie bankowym, aby uniknąć impasu. Pomaga określić, czy pożyczka zostanie udzielona, czy nie.
- Notacje używane w algorytmach bankiera to 1) Dostępne 2) Maksymalnie 3) Alokacja 4) Potrzeba
- Algorytm żądania zasobów umożliwia reprezentowanie zachowania systemu, gdy określony proces wysyła żądanie zasobu.
- Algorytm bankiera przechowuje wiele zasobów, które spełniają wymagania co najmniej jednego klienta
- Największą wadą algorytmu bankiera jest to, że nie pozwala on procesowi na zmianę jego maksymalnej potrzeby podczas przetwarzania.