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.

  • 🏦 Syfte: Den undviker dödlägen genom att kontrollera att resursallokering lämnar systemet säkert.
  • 🔢 Fyra matriser: Tillgänglig, Max, Allokering och Behov track resursanvändning.
  • 🧮 Säkert tillstånd: En begäran beviljas endast om alla processer fortfarande kan slutföras.
  • 📋 Krav: Varje process måste deklarera sina maximala resursbehov i förväg.
  • Dra nytta: Säkerställer att resurser tillfredsställer minst en klient åt gången.
  • ⚠️ Nackdel: Processer kan inte ändra sitt maximala behov medan de körs.

Bankirens algoritm i Operating System

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.

Vanliga frågor

Ett säkert tillstånd är ett tillstånd där minst en exekveringsorder låter varje process få sina maximala resurser och slutföras. Om ingen sådan order finns är tillståndet osäkert och kan leda till dödläge.

Förebyggande av dödlägen tar bort ett villkor som behövs för dödläge i förväg. Undvikande av dödlägen, liksom bankens algoritm, tillåter dessa villkor men kontrollerar varje begäran för att hålla systemet säkert.

Den är uppkallad efter hur en bank hanterar lån. En bank lånar bara ut pengar om den fortfarande kan tillfredsställa alla kunder. På liknande sätt beviljar algoritmen resurser endast om alla processer fortfarande kan slutföras på ett säkert sätt.

AI kan förutsäga resursbehov och upptäcka riskabla allokeringsmönster innan de orsakar dödlägen. Den kan föreslå vilka förfrågningar som ska försenas, vilket kompletterar bankens algoritm i komplexa system där maximala behov är svåra att förutsäga.

Inte helt och hållet. Bankerns algoritm garanterar ett säkert resultat när maximala behov är kända. AI kan förbättra förutsägelser och effektivitet, men fungerar bäst tillsammans med det, inte som en fullständig ersättning.

Sammanfatta detta inlägg med: