logo

Banker's Algorithm in Operační systém (OS)

Je to bankovní algoritmus vyhnout se uváznutí a alokovat zdroje bezpečně ke každému procesu v počítačovém systému. ' S-State' prozkoumá všechny možné testy nebo činnosti, než se rozhodne, zda by alokace měla být povolena každému procesu. Pomáhá také operačnímu systému úspěšně sdílet prostředky mezi všemi procesy. Algoritmus bankéře je pojmenován, protože kontroluje, zda by osoba měla být sankcionována částkou půjčky nebo ne, aby pomohl bankovnímu systému bezpečně simulovat alokační zdroje. V této části se naučíme Bankéřův algoritmus podrobně. Také budeme řešit problémy na základě Bankéřův algoritmus . Abychom nejprve porozuměli Bankerovu algoritmu, uvidíme jeho skutečný slovní příklad.

Předpokládejme, že počet majitelů účtů v konkrétní bance je „n“ a celkové peníze v bance jsou „T“. Pokud majitel účtu požádá o půjčku; nejprve banka odečte částku úvěru od plné hotovosti a poté odhadne, že peněžní rozdíl je větší než T, aby částku úvěru schválila. K těmto krokům dochází proto, že pokud o úvěr požádá jiná osoba nebo si z banky vybere nějakou částku, pomáhá to bance řídit a provozovat všechny věci bez omezení funkčnosti bankovního systému.

Podobně to funguje v an operační systém . Když je v počítačovém systému vytvořen nový proces, musí tento proces poskytovat operačnímu systému všechny typy informací, jako jsou nadcházející procesy, požadavky na jejich zdroje, jejich počítání a zpoždění. Na základě těchto kritérií operační systém rozhodne, která sekvence procesů by se měla provést nebo počkat, aby v systému nedošlo k uváznutí. Proto je také známý jako Algoritmus vyhýbání se mrtvému ​​bodu nebo detekce uváznutí v operačním systému.

Výhody

Níže jsou uvedeny základní charakteristiky algoritmu Banker:

  1. Obsahuje různé zdroje, které splňují požadavky každého procesu.
  2. Každý proces by měl operačnímu systému poskytnout informace o nadcházejících požadavcích na zdroje, počtu zdrojů a době, po kterou budou zdroje drženy.
  3. Pomáhá operačnímu systému spravovat a řídit procesní požadavky pro každý typ zdroje v počítačovém systému.
  4. Algoritmus má atribut Max resource, který představuje, že každý proces může pojmout maximální počet zdrojů v systému.

Nevýhody

  1. Vyžaduje pevný počet procesů a během provádění procesu nelze v systému spustit žádné další procesy.
  2. Algoritmus již neumožňuje procesům vyměňovat si své maximální potřeby při zpracování svých úkolů.
  3. Každý proces musí předem znát a uvést své maximální požadavky na zdroje pro systém.
  4. Počet požadavků na zdroje může být udělen v omezeném čase, ale časový limit pro přidělení zdrojů je jeden rok.

Při práci s algoritmem bankéře vyžaduje znát tři věci:

  1. Kolik může každý proces požadovat za každý zdroj v systému. Označuje se [ MAX ] žádost.
  2. Jak moc každý proces aktuálně drží každý zdroj v systému. Označuje se [ PŘIDĚLENO ] zdroj.
  3. Představuje číslo každého zdroje aktuálně dostupného v systému. Označuje se [ DOSTUPNÝ ] zdroj.

Níže jsou uvedeny důležité termíny datových struktur aplikované v algoritmu bankéře takto:

Předpokládejme, že n je počet procesů a m je počet každého typu zdroje použitého v počítačovém systému.

    Dostupný: Je to pole délky 'm', které definuje každý typ zdroje dostupného v systému. Když Dostupné[j] = K, znamená to, že v systému je k dispozici 'K' instancí zdrojů typu R[j].Max:Je to matice [n x m], která ukazuje, že každý proces P[i] může uložit maximální počet zdrojů R[j] (každého typu) v systému.Přidělení:Je to matice m x n příkazů, která udává typ zdrojů aktuálně přidělených každému procesu v systému. Když alokace [i, j] = K, znamená to, že procesu P[i] je v systému aktuálně přiděleno K instancí zdrojů typu R[j].Potřeba:Je to maticová sekvence M x N představující počet zbývajících zdrojů pro každý proces. Když Need[i] [j] = k, pak proces P[i] může vyžadovat K více instancí zdrojů typu Rj k dokončení přidělené práce.
    Nedd[i][j] = Max[i][j] - Přidělení[i][j].Dokončit: Je to vektor pořadí m . Zahrnuje booleovskou hodnotu (true/false), která označuje, zda byl proces přidělen k požadovaným zdrojům a zda byly všechny zdroje uvolněny po dokončení jeho úlohy.

Banker's Algorithm je kombinací bezpečnostního algoritmu a algoritmu požadavku na zdroj pro řízení procesů a zabránění uváznutí v systému:

Bezpečnostní algoritmus

Je to bezpečnostní algoritmus používaný ke kontrole, zda je systém v bezpečném stavu nebo zda se řídí bezpečnou posloupností v algoritmu bankéře:

1. Existují dva vektory Wok a Dokončit délky m a n v bezpečnostním algoritmu.

Inicializovat: Práce = Dostupné
Dokončit[i] = nepravda; pro I = 0, 1, 2, 3, 4… n - 1.

2. Zkontrolujte stav dostupnosti pro každý typ zdrojů [i], například:

potřeba[i]<= work
Dokončit[i] == nepravda
Pokud i neexistuje, přejděte ke kroku 4.

3. Práce = Práce +Přidělení(i) // pro získání nového přidělení zdrojů

Dokončit[i] = true

Přejděte na krok 2 a zkontrolujte stav dostupnosti zdrojů pro další proces.

4. Pokud Finish[i] == true; to znamená, že systém je bezpečný pro všechny procesy.

Algoritmus požadavku na zdroj

Algoritmus požadavku na zdroj kontroluje, jak se systém bude chovat, když proces provede každý typ požadavku na zdroj v systému jako matici požadavků.

Vytvořte pole požadavku na zdroj R[i] pro každý proces P[i]. Pokud Resource Requesti[j] se rovná 'K', což znamená, že proces P[i] vyžaduje v systému 'k' instancí zdrojů typu R[j].

1. Když počet požadované zdroje každého typu je menší než Potřeba zdroje, přejděte ke kroku 2 a pokud podmínka selže, což znamená, že proces P[i] překročí svůj maximální nárok na zdroj. Jak výraz napovídá:

Pokud žádost (i)<= need
Přejděte na krok 2;

2. A když je počet požadovaných zdrojů každého typu menší než dostupný zdroj pro každý proces, přejděte ke kroku (3). Jak výraz napovídá:

Pokud žádost (i)<= available
Jinak Proces P[i] musí čekat na zdroj, protože není k dispozici pro použití.

nahradit řetězec java

3. Když je požadovaný zdroj alokován procesu změnou stavu:

Dostupné = Dostupné - Poptávka
Alokace(i) = Alokace(i) + Žádost (i)
Potřebai= Potřebai- Žádosti

Když je stav přidělení zdrojů bezpečný, jsou jeho zdroje přiděleny procesu P(i). A pokud nový stav není bezpečný, musí proces P (i) čekat na každý typ požadavku R(i) a obnovit starý stav alokace zdrojů.

Příklad: Uvažujme systém, který obsahuje pět procesů P1, P2, P3, P4, P5 a tři typy zdrojů A, B a C. Následují typy zdrojů: A má 10, B má 5 a typ prostředku C má 7 instancí.

Proces Přidělení
A B C
Max
A B C
Dostupný
A B C
P1 0 1 0 7 5 3 3 3 2
P2 200 3 2 2
P3 3 0 2 9 0 2
P4 2 1 1 2 2 2
P5 0 0 2 4 3 3

Odpovězte na následující otázky pomocí algoritmu bankéře:

  1. Jaký je odkaz na matici potřeb?
  2. Zjistěte, zda je systém bezpečný nebo ne.
  3. Co se stane, pokud požadavek na zdroj (1, 0, 0) pro proces P1 může systém tento požadavek okamžitě přijmout?

let. 2: Kontext matice potřeb je následující:

Potřeba [i] = Max [i] – Přidělení [i]
Potřeba P1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Potřeba P2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Potřeba P3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Potřeba P4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Potřeba P5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1

protokol udp
Proces Potřeba
A B C
P1 7 4 3
P2 1 2 2
P3 6 0 0
P4 0 1 1
P5 4 3 1

Proto jsme vytvořili kontext matice potřeb.

Ans. 2: Použijte algoritmus bankéře:

Dostupné zdroje A, B a C jsou 3, 3 a 2.

Nyní zkontrolujeme, zda je pro každý proces k dispozici každý typ požadavku na zdroj.

Krok 1: Pro proces P1:

Potřeba<= available< p>

7, 4, 3<= 2 3, condition is Nepravdivé .

Zkoumáme tedy další proces, P2.

Krok 2: Pro proces P2:

Potřeba<= available< p>

1, 2, 2<= 2 3, condition skutečný

Nové k dispozici = k dispozici + přidělení

(3, 3, 2) + (2, 0, 0) => 5, 3, 2

Podobně zkoumáme další proces P3.

Krok 3: Pro proces P3:

P3 Potřeba<= available< p>

6, 0, 0<= 2 5, 3, condition is Nepravdivé .

Podobně zkoumáme další proces, P4.

Krok 4: Pro proces P4:

P4 Potřeba<= available< p>

0, 1, 1<= 2 5, 3, condition is skutečný

Nový dostupný zdroj = k dispozici + přidělení

5, 3, 2 + 2, 1, 1 => 7, 4, 3

Podobně zkoumáme další proces P5.

Krok 5: Pro proces P5:

P5 Potřeba<= available< p>

4, 3, 1<= 3 7, 4, condition is skutečný

Nový dostupný zdroj = k dispozici + přidělení

7, 4, 3 + 0, 0, 2 => 7, 4, 5

Nyní znovu prozkoumáme každý typ požadavku na zdroj pro procesy P1 a P3.

Krok 6: Pro proces P1:

P1 Potřeba<= available< p>

7, 4, 3<= 5 7, 4, condition is skutečný

Nový dostupný zdroj = dostupný + přidělení

7, 4, 5 + 0, 1, 0 => 7, 5, 5

Zkoumáme tedy další proces P2.

Krok 7: Pro proces P3:

P3 Potřeba<= available< p>

6, 0, 0<= 5 7, 5, condition is true< p>

Nový dostupný zdroj = dostupný + přidělení

7, 5, 5 + 3, 0, 2 => 10, 5, 7

Proto spustíme algoritmus bankéře k nalezení bezpečného stavu a bezpečné sekvence jako P2, P4, P5, P1 a P3.

let. 3: Abychom vyhověli Žádosti (1, 0, 2), musíme to nejprve zkontrolovat Žádost<= available< strong>, tedy (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>


vnitřní fungování hashmap