Bankers algoritm i Operatingssystem [Exempel]
⚡ Smart sammanfattning
Banker's Algorithm är en metod för att undvika dödlägen som testar om resursallokering håller systemet i ett säkert tillstånd. Den har fått sitt namn efter banking och beviljar endast en begäran om det finns tillräckligt med resurser kvar för att tillgodose varje process.
Vad är Bankers Algorithm?
Bankers algoritm används huvudsakligen i banksystemet för att undvika dödläge. Det hjälper dig att identifiera om ett lån kommer att ges eller inte.
Denna algoritm används för att testa för säker simulering av allokeringen för att bestämma det maximala belopp som är tillgängligt för alla resurser. Den kontrollerar också för alla möjliga aktiviteter innan man avgör om tilldelningen ska fortsätta eller inte.
Till exempel finns det X antal kontoinnehavare i en specifik bank, och det totala beloppet på deras konton är G.
När banken behandlar ett billån, underordnas mjukvarusystemettracDet belopp som beviljats lån för att köpa en bil av det totala beloppet (G + Fast deposition + Månadsinkomst + Guld, etc.) som banken har.
Billånet beviljas endast om det återstående beloppet fortfarande överstiger G, så alla kontoinnehavare kan ta ut G när som helst.
Bankers algoritmnotationer
Här är några viktiga notationer som används i Bankerns algoritm:
- X: Anger det totala antalet processer i systemet.
- Y: Indikerar det totala antalet resurser som finns i systemet.
Tillgängliga
[1:Y] anger hur många instanser av varje resurstyp som finns tillgängliga.
Max
[1:X, 1:Y]: Uttrycker det maximala antalet resurser av typen j som processen i kan begära.
Tilldelning
[1:X, 1:Y]: Anger de resurser av typ j som för närvarande är allokerade till process i.
Behöver
Uttrycker hur många fler resurser av varje typ av process jag fortfarande behöver för att slutföra sin uppgift.
Exempel på Bankers algoritm
Antag att vi har följande resurser:
- 5 pennenheter
- 2 skrivare
- 4 skannrar
- 3 hårddiskar
Här har vi skapat en vektor som representerar totala resurser: Tillgänglig = (5, 2, 4, 3).
Antag att det finns fyra processer. De tillgängliga resurserna är redan allokerade enligt matristabellen nedan.
| Processnamn | Penna enheter | Skrivare | Scanner | hårddisk |
|---|---|---|---|---|
| P | 2 | 0 | 1 | 1 |
| Q | 0 | 1 | 0 | 0 |
| R | 1 | 0 | 1 | 1 |
| S | 1 | 1 | 0 | 1 |
| Totalt | 4 | 2 | 2 | 3 |
Här är de allokerade resurserna summan av dessa kolumner:
Allokerad = (4, 2, 2, 3).
Vi skapar också en matris för att visa antalet för varje resurs som krävs för alla processer. Denna matris kallas Behöver = (3, 0, 2, 2).
| Processnamn | Penna enheter | Skrivare | Scanner | hårddisk |
|---|---|---|---|---|
| P | 1 | 1 | 0 | 0 |
| Q | 0 | 1 | 1 | 2 |
| R | 2 | 1 | 0 | 0 |
| S | 0 | 0 | 1 | 0 |
Den tillgängliga vektorn kommer att vara:
Tillgänglig = Tillgänglig – Allokerad
= (5, 2, 4, 3) – (4, 2, 2, 3)
= (1, 0, 2, 0)
Algoritm för resursbegäran
Med algoritmen för resursbegäran kan du representera systemets beteende när en specifik process gör en resursbegäran.
Låt oss förstå detta genom följande steg:
Steg 1) När det totala antalet begärda instanser av alla resurser är mindre än processen, gå vidare till steg 2.
Steg 2) När antalet begärda instanser av varje resurstyp är färre jämfört med de tillgängliga resurserna för varje typ, kommer det att bearbetas till nästa steg. Annars måste processen vänta på grund av otillräckliga resurser.
Steg 3) Resursen allokeras enligt nedanstående pseudokod.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Detta sista steg utförs eftersom systemet behöver anta att resurser har allokerats, så att det finns färre resurser tillgängliga efter allokering.
Egenskaper för Bankers Algorithm
Här är de viktiga egenskaperna hos bankirens algoritm:
- Innehåller många resurser som uppfyller kraven hos minst en klient.
- Närhelst en process får alla sina resurser måste den returnera dem under en begränsad period.
- När en process begär en resurs kan den behöva vänta.
- Systemet har ett begränsat antal resurser.
- Den erbjuder en avancerad funktion för maximal resursallokering.
Nackdel med Bankers algoritm
Här är nackdelarna/nackdelarna med att använda bankens algoritm:
- Det tillåter inte att processen ändrar sitt maximala behov under bearbetning.
- Det tillåter att alla förfrågningar beviljas inom en begränsad tid, men ett år är en fast period för det.
- Alla processer måste känna till och ange sina maximala resursbehov i förväg.

