Bankers algoritme i Operating System [Eksempel]

⚡ Smart opsummering

Banker's Algorithm er en metode til at undgå fastlåste situationer, der tester, om allokering af ressourcer holder systemet i en sikker tilstand. Opkaldt efter banking, imødekommer den kun en anmodning, hvis der er tilstrækkelige ressourcer tilbage til at opfylde alle processer.

  • 🏦 Formål: Det undgår fastlåste situationer ved at kontrollere, at ressourceallokering sikrer systemet.
  • 🔢 Fire matricer: Tilgængelig, Maks., Allokering og Behov track ressourceforbrug.
  • 🧮 Sikker tilstand: En anmodning imødekommes kun, hvis alle processer stadig kan afsluttes.
  • ???? Krav: Hver proces skal på forhånd deklarere sit maksimale ressourcebehov.
  • Fordel: Sikrer, at ressourcerne tilfredsstiller mindst én klient ad gangen.
  • ⚠️ Ulempe: Processer kan ikke ændre deres maksimale behov under kørsel.

Bankerens algoritme i Operating System

Hvad er Bankers Algorithm?

Bankmands algoritme bruges primært i banksystemet for at undgå dødvande. Det hjælper dig med at identificere, om et lån vil blive givet eller ej.

Denne algoritme bruges til at teste for sikker simulering af allokeringen for at bestemme det maksimale beløb, der er tilgængeligt for alle ressourcer. Den kontrollerer også for alle mulige aktiviteter, før den beslutter, om tildelingen skal fortsættes eller ej.

For eksempel er der X antal kontohavere i en bestemt bank, og det samlede beløb på deres konti er G.

Når banken behandler et billån, underskriver softwaresystemettracDet beløb, der er ydet til køb af en bil, ud af det samlede beløb (G + Fast indskud + Månedlig indkomstordning + Guld osv.), som banken har.

Den bevilger kun billånet, hvis det resterende beløb stadig overstiger G, så alle kontohavere kan hæve G når som helst.

Bankers algoritme-notationer

Her er nogle vigtige notationer, der bruges i bankens algoritme:

  • X: Angiver det samlede antal processer i systemet.
  • Y: Angiver det samlede antal ressourcer, der er til stede i systemet.

tilgængelig

[1:Y] angiver, hvor mange tilgængelige forekomster af hver ressourcetype.

max

[1:X, 1:Y]: Udtrykker det maksimale antal ressourcer af typen j, som processen i kan anmode om.

Tildeling

[1:X, 1:Y]: Angiver de ressourcer af typen j, der i øjeblikket er allokeret til proces i.

Behov

Udtrykker, hvor mange flere ressourcer af hver procestype jeg stadig har brug for for at fuldføre opgaven.

Eksempel på Bankers algoritme

Antag, at vi har følgende ressourcer:

  • 5 Pen-drev
  • 2 printere
  • 4 scannere
  • 3 harddiske

Her har vi lavet en vektor, der repræsenterer de samlede ressourcer: Tilgængelig = (5, 2, 4, 3).

Antag, at der er fire processer. De tilgængelige ressourcer er allerede allokeret i henhold til matrixtabellen nedenfor.

Process Name Pen-drev Printer Scanner harddisk
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Samlet beløb 4 2 2 3

Her er de allokerede ressourcer summen af ​​disse kolonner:

Allokeret = (4, 2, 2, 3).

Vi opretter også en matrix for at vise antallet af hver ressource, der kræves for alle processer. Denne matrix kaldes Behov = (3, 0, 2, 2).

Process Name Pen-drev Printer Scanner harddisk
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Den tilgængelige vektor vil være:

Tilgængelig = Tilgængelig – Allokeret

= (5, 2, 4, 3) – (4, 2, 2, 3)

= (1, 0, 2, 0)

Ressourceanmodningsalgoritme

Ressourceanmodningsalgoritmen gør det muligt at repræsentere systemets adfærd, når en specifik proces foretager en ressourceanmodning.

Lad os forstå dette ved hjælp af følgende trin:

Trin 1) Når det samlede antal anmodede forekomster af alle ressourcer er mindre end processen, skal du gå videre til trin 2.

Trin 2) Når antallet af anmodede forekomster af hver enkelt ressourcetype er mindre sammenlignet med de tilgængelige ressourcer af hver type, vil den blive behandlet til næste trin. Ellers skal processen vente på grund af manglende ressourcer.

Trin 3) Ressourcen allokeres som vist i den nedenfor givne pseudokode.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

Dette sidste trin udføres, fordi systemet skal antage, at ressourcer er blevet allokeret, således at der er færre ressourcer tilgængelige efter allokering.

Karakteristika for Bankers Algorithm

Her er de vigtige karakteristika ved bankens algoritme:

  • Opbevarer mange ressourcer, der opfylder kravene fra mindst én klient.
  • Når en proces får alle sine ressourcer, skal den returnere dem i en begrænset periode.
  • Når en proces anmoder om en ressource, kan det være nødvendigt at vente.
  • Systemet har et begrænset antal ressourcer.
  • Den tilbyder en avanceret funktion til maksimal ressourceallokering.

Ulempe ved Bankers algoritme

Her er ulemperne/ulemperne ved at bruge bankens algoritme:

  • Det tillader ikke processen at ændre sit maksimale behov under behandlingen.
  • Det giver mulighed for at imødekomme alle anmodninger inden for en begrænset tidsperiode, men et år er en fast periode for det.
  • Alle processer skal kende og angive deres maksimale ressourcebehov på forhånd.

Ofte Stillede Spørgsmål

En sikker tilstand er en tilstand, hvor mindst én udførelsesordre tillader hver proces at få sine maksimale ressourcer og afslutte. Hvis der ikke findes en sådan ordre, er tilstanden usikker og kan føre til en fastlåst situation.

Forebyggelse af deadlock fjerner én betingelse, der er nødvendig for en deadlock på forhånd. Undgåelse af deadlock tillader, ligesom bankens algoritme, disse betingelser, men kontrollerer hver anmodning for at holde systemet sikkert.

Det er opkaldt efter den måde, en bank administrerer lån på. En bank låner kun penge ud, hvis den stadig kan tilfredsstille alle kunder. Tilsvarende tildeler algoritmen kun ressourcer, hvis alle processer stadig kan gennemføres sikkert.

AI kan forudsige ressourceefterspørgsel og opdage risikable allokeringsmønstre, før de forårsager fastlåste situationer. Den kan foreslå, hvilke anmodninger der skal forsinkes, hvilket supplerer bankens algoritme i komplekse systemer, hvor det er svært at forudsige maksimale behov.

Ikke helt. Bankeralgoritmen garanterer et sikkert resultat, når de maksimale behov er kendte. AI kan forbedre forudsigelser og effektivitet, men fungerer bedst sammen med den, ikke som en fuldstændig erstatning.

Opsummer dette indlæg med: