Je to bežný bankový algoritmus vyhnúť sa mŕtvemu bodu a alokovať zdroje bezpečne ku každému procesu v počítačovom systéme. ' S-State' skúma všetky možné testy alebo činnosti predtým, ako sa rozhodne, či by sa pridelenie malo povoliť každému procesu. Pomáha tiež operačnému systému úspešne zdieľať prostriedky medzi všetkými procesmi. Bankový algoritmus je pomenovaný, pretože kontroluje, či by osoba mala byť sankcionovaná sumou úveru alebo nie, aby bankovému systému pomohla bezpečne simulovať alokačné zdroje. V tejto časti sa naučíme Bankový algoritmus podrobne. Tiež budeme riešiť problémy na základe Bankový algoritmus . Aby sme najskôr porozumeli Bankerovmu algoritmu, uvidíme jeho skutočný slovný príklad.
Predpokladajme, že počet majiteľov účtov v konkrétnej banke je „n“ a celkový počet peňazí v banke je „T“. Ak majiteľ účtu požiada o pôžičku; najprv banka odpočíta sumu úveru od plnej hotovosti a potom odhadne, že rozdiel v hotovosti je väčší ako T, aby schválila výšku úveru. K týmto krokom dochádza preto, lebo ak iná osoba požiada o úver alebo si z banky vyberie nejakú sumu, pomáha to banke riadiť a prevádzkovať všetky veci bez akéhokoľvek obmedzenia funkčnosti bankového systému.
Podobne to funguje v an operačný systém . Keď sa v počítačovom systéme vytvorí nový proces, tento proces musí poskytnúť operačnému systému všetky typy informácií, ako sú nadchádzajúce procesy, požiadavky na ich zdroje, ich počítanie a oneskorenia. Na základe týchto kritérií operačný systém rozhodne, ktorá postupnosť procesov by sa mala vykonať alebo počkať, aby v systéme nedošlo k zablokovaniu. Preto je známy aj ako algoritmus vyhýbania sa mŕtvemu bodu alebo detekcia uviaznutia v operačnom systéme.
Výhody
Nižšie sú uvedené základné charakteristiky bankového algoritmu:
- Obsahuje rôzne zdroje, ktoré spĺňajú požiadavky každého procesu.
- Každý proces by mal operačnému systému poskytnúť informácie o nadchádzajúcich požiadavkách na zdroje, počte zdrojov a ako dlho budú zdroje uchovávané.
- Pomáha operačnému systému riadiť a kontrolovať procesné požiadavky pre každý typ zdroja v počítačovom systéme.
- Algoritmus má atribút Max resource, ktorý predstavuje, že každý proces môže obsahovať maximálny počet zdrojov v systéme.
Nevýhody
- Vyžaduje pevný počet procesov a počas vykonávania procesu nemožno v systéme spustiť žiadne ďalšie procesy.
- Algoritmus už neumožňuje procesom vymieňať si maximálne potreby pri spracovávaní svojich úloh.
- Každý proces musí vopred poznať a uviesť svoju maximálnu požiadavku na zdroje pre systém.
- Počet žiadostí o zdroje možno poskytnúť v konečnom čase, ale časový limit na pridelenie zdrojov je jeden rok.
Pri práci s bankovým algoritmom vyžaduje vedieť o troch veciach:
- Koľko môže každý proces požadovať za každý zdroj v systéme. Označuje sa znakom [ MAX ] žiadosť.
- Koľko každý proces momentálne drží každý zdroj v systéme. Označuje sa znakom [ ALOKOVANÝ ] zdroj.
- Predstavuje číslo každého zdroja aktuálne dostupného v systéme. Označuje sa znakom [ DOSTUPNÉ ] zdroj.
Nižšie sú uvedené dôležité termíny dátových štruktúr aplikované v bankovom algoritme takto:
Predpokladajme, že n je počet procesov a m je počet každého typu zdroja použitého v počítačovom systéme.
Nedd[i][j] = Max[i][j] - Pridelenie[i][j].
Banker's Algorithm je kombináciou bezpečnostného algoritmu a algoritmu požiadavky na zdroj na riadenie procesov a predchádzanie zablokovaniu v systéme:
sada pružinových nástrojov
Bezpečnostný algoritmus
Je to bezpečnostný algoritmus, ktorý sa používa na kontrolu, či je systém v bezpečnom stave alebo či sa riadi bezpečnou sekvenciou v algoritme bankára:
1. Existujú dva vektory Wok a Skončiť dĺžky m a n v bezpečnostnom algoritme.
Inicializovať: Práca = Dostupné
Finish[i] = nepravda; pre I = 0, 1, 2, 3, 4… n - 1.
2. Skontrolujte stav dostupnosti pre každý typ zdrojov [i], ako napríklad:
treba[i]<= work
Dokončiť[i] == nepravda
Ak i neexistuje, prejdite na krok 4.=>
3. Práca = Práca + Pridelenie(i) // na získanie nového pridelenia zdrojov
Dokončiť[i] = pravda
Prejdite na krok 2 a skontrolujte stav dostupnosti prostriedkov pre ďalší proces.
4. Ak Finish[i] == true; to znamená, že systém je bezpečný pre všetky procesy.
Algoritmus požiadavky na zdroj
Algoritmus požiadavky na zdroj kontroluje, ako sa bude systém správať, keď proces vytvorí každý typ požiadavky na zdroj v systéme ako maticu požiadaviek.
Vytvorte pole požiadaviek na zdroj R[i] pre každý proces P[i]. Ak žiadosť o zdroji[j] sa rovná 'K', čo znamená, že proces P[i] vyžaduje 'k' inštancií typu zdrojov R[j] v systéme.
1. Keď počet požadované zdroje každého typu je menej ako Potreba zdroje, prejdite na krok 2 a ak podmienka zlyhá, čo znamená, že proces P[i] prekročí svoj maximálny nárok na zdroj. Ako naznačuje výraz:
protokol udp
Ak žiadosť (i)<= need
Prejdite na krok 2;=>
2. A keď je počet požadovaných zdrojov každého typu menší ako dostupný zdroj pre každý proces, prejdite na krok (3). Ako naznačuje výraz:
Ak žiadosť (i)<= available
Inak Proces P[i] musí čakať na zdroj, pretože nie je k dispozícii na použitie.=>
3. Keď je požadovaný zdroj pridelený procesu zmenou stavu:
Dostupné = Dostupné - Žiadosť
Pridelenie (i) = Pridelenie (i) + Žiadosť (i)
Potrebai= Potrebai- Žiadosťi
Keď je stav pridelenia zdrojov bezpečný, jeho zdroje sa pridelia procesu P(i). A ak nový stav nie je bezpečný, proces P (i) musí čakať na každý typ požiadavky R(i) a obnoviť starý stav pridelenia zdrojov.
Príklad: Predstavte si systém, ktorý obsahuje päť procesov P1, P2, P3, P4, P5 a tri typy zdrojov A, B a C. Nasledujú typy zdrojov: A má 10, B má 5 a typ prostriedku C má 7 inštancií.
Proces | Pridelenie A B C | Max A B C | K dispozícii 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 |
Odpovedzte na nasledujúce otázky pomocou bankového algoritmu:
- Aký je odkaz na maticu potrieb?
- Zistite, či je systém bezpečný alebo nie.
- Čo sa stane, ak žiadosť o zdroj (1, 0, 0) pre proces P1 dokáže systém okamžite prijať túto požiadavku?
rokov. 2: Kontext matice potrieb je nasledujúci:
Potreba [i] = Max [i] – Pridelenie [i]
Potreba P1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Potreba P2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Potreba P3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Potreba P4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Potreba P5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1
Proces | Potreba A B C |
---|---|
P1 | 7 4 3 |
P2 | 1 2 2 |
P3 | 6 0 0 |
P4 | 0 1 1 |
P5 | 4 3 1 |
Preto sme vytvorili kontext matice potrieb.
Ans. 2: Použite bankový algoritmus:
Dostupné zdroje A, B a C sú 3, 3 a 2.
Teraz skontrolujeme, či je každý typ požiadavky na zdroj dostupný pre každý proces.
Krok 1: Pre proces P1:
Potreba<= available< p>
7, 4, 3<= 2 3, condition is falošný .=>
k zhlukovacím algoritmom
Takže skúmame ďalší proces, P2.
Krok 2: Pre proces P2:
Potreba<= available< p>
1, 2, 2<= 2 3, condition pravda=>
Nové dostupné = dostupné + Pridelenie
(3, 3, 2) + (2, 0, 0) => 5, 3, 2
Podobne skúmame ďalší proces P3.
Krok 3: Pre proces P3:
P3 Potreba<= available< p>
6, 0, 0<= 2 5, 3, condition is falošný .=>
Podobne skúmame ďalší proces, P4.
Krok 4: Pre proces P4:
P4 Potreba<= available< p>
0, 1, 1<= 2 5, 3, condition is pravda=>
Nový dostupný zdroj = k dispozícii + pridelenie
5, 3, 2 + 2, 1, 1 => 7, 4, 3
Podobne skúmame ďalší proces P5.
Krok 5: Pre proces P5:
P5 Potreba<= available< p>
4, 3, 1<= 3 7, 4, condition is pravda=>
jpa na jar
Nový dostupný zdroj = k dispozícii + pridelenie
7, 4, 3 + 0, 0, 2 => 7, 4, 5
Teraz znova preskúmame každý typ požiadavky na zdroj pre procesy P1 a P3.
Krok 6: Pre proces P1:
P1 Potreba<= available< p>
7, 4, 3<= 5 7, 4, condition is pravda=>
Nový dostupný zdroj = dostupný + pridelenie
7, 4, 5 + 0, 1, 0 => 7, 5, 5
Preskúmame teda ďalší proces P2.
Krok 7: Pre proces P3:
P3 Potreba<= available< p>
6, 0, 0<= 5 7, 5, condition is true< p>
Nový dostupný zdroj = dostupný + pridelenie
7, 5, 5 + 3, 0, 2 => 10, 5, 7
Preto spustíme bankový algoritmus, aby sme našli bezpečný stav a bezpečnú sekvenciu ako P2, P4, P5, P1 a P3.
rokov. 3: Aby sme vyhoveli Žiadosti (1, 0, 2), musíme to najskôr skontrolovať Žiadosť<= available< strong>, teda (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>
=>=>
java localdatetime=>=>=>=>=>