Banker's Algorithm in Operating System [Příklad]

Co je to Banker's Algorithm?

Bankéřův algoritmus se používá hlavně v bankovním systému, aby se zabránilo uváznutí. Pomůže vám určit, zda bude půjčka poskytnuta nebo ne.

Tento algoritmus se používá k testování bezpečné simulace alokace pro určení maximální částky dostupné pro všechny zdroje. Kontroluje také všechny možné činnosti, než určí, zda by alokace měla pokračovat či nikoli.

Například existuje X počet majitelů účtů konkrétní banky a celková částka peněz na jejich účtech je G.

Když banka zpracuje úvěr na auto, softwarový systém odečte částku úvěru poskytnutého na nákup vozu od celkových peněz (G+ Fixní vklad + Schéma měsíčního příjmu + Zlato atd.), které banka má.

Kontroluje také, zda je rozdíl větší nebo ne G. Úvěr na auto zpracuje pouze tehdy, když má banka dostatek peněz, i když peníze G vyberou všichni majitelé účtu současně.

Zápisy bankéřských algoritmů

Zde je důležitý zápis používaný v Bankerově algoritmu:

  • X: Označuje celkový počet procesů systému.
  • Y: Označuje celkový počet zdrojů přítomných v systému.

Dostupný

[I: Y] označují, který zdroj je k dispozici.

Max

[l:X,l:Y]: Vyjádření maximálního počtu zdrojů typu j nebo procesu i

Přidělení

[l:X,l:Y]. Uveďte, kde jste procesu obdrželi zdroj typu j

Potřeba

Vyjádřete, kolik dalších zdrojů lze v budoucnu alokovat

Příklad Bankerova algoritmu

Předpokládejme, že máme následující zdroje:

  • 5 pero mechaniky
  • 2 tiskárny
  • 4 skenery
  • 3 pevné disky

Zde jsme vytvořili vektor představující celkové zdroje: Dostupné = (5, 2, 4, 3).

Předpokládejme, že existují čtyři procesy. Dostupné zdroje jsou již alokovány podle maticové tabulky níže.

Název procesu Pen Drive Tiskárna Skener pevný disk
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Celková cena 4 2 2 3

Zde jsou přidělené zdroje součtem těchto sloupců:

Přiděleno = (4, 2, 2, 3).

Vytváříme také matici pro zobrazení počtu každého zdroje potřebného pro všechny procesy. Tato matice se nazývá Potřeba=(3,0,2,2)

Název procesu Pen Drive Tiskárna Skener pevný disk
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Dostupný vektor bude:

Dostupné=Available-Alokováno

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

=(1, 0, 2, 0)

Algoritmus požadavku na zdroj

Algoritmus požadavku na zdroj vám umožňuje reprezentovat chování systému, když konkrétní proces zadá požadavek na zdroj.

Pochopte to pomocí následujících kroků:

Krok 1) Když je celková požadovaná instance všech prostředků menší než proces, přejděte ke kroku 2.

Krok 2) Když je požadovaná instance každého typu prostředku menší ve srovnání s dostupnými prostředky každého typu, bude zpracována k dalšímu kroku. V opačném případě proces vyžaduje čekání z důvodu nedostupnosti dostatečných zdrojů.

Krok 3) Zdroj je alokován tak, jak je uvedeno v níže uvedeném pseudokódu.

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

Tento poslední krok se provádí, protože systém musí předpokládat, že byly přiděleny prostředky. Takže po přidělení by mělo být k dispozici méně zdrojů.

Charakteristika Bankerova algoritmu

Zde jsou důležité charakteristiky bankéřského algoritmu:

  • Udržujte mnoho zdrojů, které uspokojí požadavek alespoň jednoho klienta
  • Kdykoli proces získá všechny své zdroje, musí je v omezeném období vrátit.
  • Když proces požaduje zdroj, musí čekat
  • Systém má omezený počet zdrojů
  • Pokročilá funkce pro maximální alokaci zdrojů

Nevýhoda Bankerova algoritmu

Zde jsou nevýhody/nevýhody použití bankovního algoritmu

  • Neumožňuje procesu změnit jeho maximální potřebu během zpracování
  • Umožňuje vyhovět všem žádostem v omezeném čase, ale jeden rok je pro to pevně stanovena.
  • Všechny procesy musí předem znát a uvádět své maximální potřeby zdrojů.

Shrnutí

  • Bankéřův algoritmus se používá převážně v bankovním systému, aby se zabránilo zablokování. Pomůže vám určit, zda bude půjčka poskytnuta nebo ne.
  • Zápisy používané v bankovních algoritmech jsou 1) Dostupné 2) Max. 3) Alokace 4) Potřeba
  • Algoritmus požadavku na zdroj vám umožňuje reprezentovat chování systému, když konkrétní proces zadá požadavek na zdroj.
  • Bankéřův algoritmus uchovává mnoho zdrojů, které uspokojí požadavek alespoň jednoho klienta
  • Největší nevýhodou bankéřského algoritmu je to, že neumožňuje procesu změnit svou maximální potřebu během zpracování.

Denní zpravodaj Guru99

Začněte svůj den s nejnovějšími a nejdůležitějšími zprávami o umělé inteligenci, které vám přinášíme právě teď.