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í.