Algorytm Bankiera w Operasystem tingowy [Przykład]

⚡ Inteligentne podsumowanie

Algorytm Bankera to metoda unikania zakleszczeń, która sprawdza, czy przydzielanie zasobów utrzymuje system w bezpiecznym stanie. Nazwany na cześć bankowości, algorytm ten akceptuje żądanie tylko wtedy, gdy dostępne są wystarczające zasoby, aby obsłużyć wszystkie procesy.

  • 🏦 Cel: Zapobiega blokadom poprzez sprawdzanie, czy alokacja zasobów nie narusza bezpieczeństwa systemu.
  • 🔢 Cztery macierze: Dostępne, maks., przydział i potrzeba track wykorzystania zasobów.
  • 🧮 Stan bezpieczny: Żądanie zostanie spełnione tylko wtedy, gdy wszystkie procesy będą mogły zostać zakończone.
  • 📋 Wymaganie: Każdy proces musi z góry określić swoje maksymalne zapotrzebowanie na zasoby.
  • ✅ Korzyści: Zapewnia, że ​​zasoby w danym momencie zadowolą co najmniej jednego klienta.
  • ⚠️ Wada: Procesy nie mogą zmieniać swojego maksymalnego zapotrzebowania w trakcie działania.

Algorytm bankiera w Operasystemu

Co to jest algorytm bankiera?

Algorytm bankiera jest używany głównie w systemie bankowym, aby uniknąć impas. Pomaga określić, czy pożyczka zostanie przyznana, 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, w określonym banku jest X właścicieli kont, a łączna kwota pieniędzy na ich kontach wynosi G.

Gdy bank przetwarza pożyczkę na samochód, system oprogramowania podrzędnegotrackwota pożyczki udzielonej na zakup samochodu z całkowitej sumy pieniędzy (G + Lokata terminowa + Miesięczny Program Dochodowy + Złoto itp.) jakimi dysponuje bank.

Kredyt samochodowy zostanie udzielony tylko wtedy, gdy pozostała kwota przekracza kwotę G, co oznacza, że ​​wszyscy posiadacze konta mogą wypłacić G w dowolnym momencie.

Notacje algorytmu bankiera

Oto kilka ważnych oznaczeń stosowanych w algorytmie bankiera:

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

Dostępny

[1:Y] wskazuje, ile wystąpień każdego typu zasobu jest dostępnych.

Max

[1:X, 1:Y]: Wyraża maksymalną liczbę zasobów typu j, o które może poprosić proces i.

Przydział

[1:X, 1:Y]: wskazuje zasoby typu j aktualnie przydzielone procesowi i.

Potrzebować

Określa, ile jeszcze zasobów każdego typu procesu i jest potrzebnych do ukończenia zadania.

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

W tym przypadku przydzielone zasoby są sumą 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 następujący:

Dostępny = Dostępny – Przydzielony

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

= (1, 0, 2, 0)

Algorytm żądania zasobów

Algorytm żądania zasobów umożliwia przedstawienie zachowania systemu w sytuacji, gdy określony proces zgłasza żądanie zasobu.

Zrozumiemy to w następujących krokach:

Krok 1) Jeśli łączna liczba żądanych wystąpień wszystkich zasobów jest mniejsza od procesu, przejdź do kroku 2.

Krok 2) Gdy żądana liczba wystąpień każdego typu zasobu jest mniejsza niż liczba dostępnych zasobów każdego typu, proces przechodzi do następnego kroku. W przeciwnym razie proces musi poczekać z powodu braku wystarczających zasobów.

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

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

Ten ostatni krok wykonuje się, ponieważ system musi założyć, że zasoby zostały już przydzielone, więc po przydzieleniu dostępnych jest mniej zasobów.

Charakterystyka algorytmu Bankera

Oto najważniejsze cechy algorytmu bankiera:

  • Przechowuje wiele zasobów, które spełniają wymagania co najmniej jednego klienta.
  • Ilekroć proces otrzymuje wszystkie swoje zasoby, musi je zwrócić w ograniczonym czasie.
  • Gdy proces zażąda zasobu, może zaistnieć konieczność oczekiwania.
  • System ma ograniczoną liczbę zasobów.
  • Oferuje zaawansowaną funkcję umożliwiającą maksymalne rozdysponowanie zasobów.

Wady algorytmu Bankera

Oto wady/wady korzystania z algorytmu bankiera:

  • Nie pozwala procesowi zmienić swojego maksymalnego zapotrzebowania w trakcie przetwarzania.
  • Umożliwia ona rozpatrzenie wszystkich wniosków w ograniczonym czasie, ale rok jest w tym przypadku okresem stałym.
  • Wszystkie procesy muszą z wyprzedzeniem znać i określać swoje maksymalne zapotrzebowanie na zasoby.

FAQ

Stan bezpieczny to taki, w którym co najmniej jedna kolejność wykonywania pozwala każdemu procesowi uzyskać maksymalne zasoby i zakończyć działanie. Jeśli taka kolejność nie istnieje, stan jest niebezpieczny i może prowadzić do impasu.

Zapobieganie impasom z góry eliminuje jeden warunek wymagany do ich wystąpienia. Unikanie impasów, podobnie jak algorytm bankiera, dopuszcza te warunki, ale weryfikuje każde żądanie, aby zapewnić bezpieczeństwo systemu.

Nazwa pochodzi od sposobu, w jaki bank zarządza kredytami. Bank pożycza pieniądze tylko wtedy, gdy nadal jest w stanie zaspokoić potrzeby wszystkich klientów. Podobnie, algorytm przyznaje zasoby tylko wtedy, gdy wszystkie procesy nadal mogą być bezpiecznie ukończone.

Sztuczna inteligencja potrafi przewidywać zapotrzebowanie na zasoby i wykrywać ryzykowne wzorce alokacji, zanim doprowadzą do impasu. Może sugerować, które żądania należy odłożyć, uzupełniając Algorytm Bankera w złożonych systemach, w których trudno przewidzieć maksymalne zapotrzebowanie.

Nie do końca. Algorytm Bankera gwarantuje bezpieczny wynik, gdy znane są maksymalne potrzeby. Sztuczna inteligencja może poprawić przewidywanie i wydajność, ale najlepiej działa równolegle z nią, a nie jako jej pełne zastąpienie.

Podsumuj ten post następująco: