Bankers algoritme i Operatingsystem [Eksempel]

⚡ Smart oppsummering

Banker's Algorithm er en metode for å unngå fastlåste situasjoner som tester om allokering av ressurser holder systemet i en sikker tilstand. Den er oppkalt etter banking, og innvilger bare en forespørsel hvis det er nok ressurser igjen til å tilfredsstille alle prosesser.

  • 🏦 Formål: Den unngår fastlåste situasjoner ved å kontrollere at ressursallokering gjør systemet trygt.
  • 🔢 Fire matriser: Tilgjengelig, Maks, Tildeling og Behov track ressursbruk.
  • 🧮 Sikker tilstand: En forespørsel innvilges bare hvis alle prosesser fortsatt kan fullføres.
  • ???? Krav: Hver prosess må deklarere sitt maksimale ressursbehov på forhånd.
  • Fordel: Sørger for at ressursene tilfredsstiller minst én klient om gangen.
  • ⚠️ Ulempe: Prosesser kan ikke endre sitt maksimale behov mens de kjører.

Bankerens algoritme i Operating System

Hva er Bankers Algorithm?

Bankers algoritme brukes hovedsakelig i banksystemet for å unngå vranglås. Det hjelper deg å identifisere om et lån vil bli gitt eller ikke.

Denne algoritmen brukes til å teste for sikker simulering av allokeringen for å bestemme maksimalt tilgjengelig beløp for alle ressurser. Den sjekker også for alle mulige aktiviteter før den bestemmer om tildelingen skal fortsette eller ikke.

For eksempel er det X antall kontoinnehavere i en bestemt bank, og det totale beløpet på kontoene deres er G.

Når banken behandler et billån, underskriver programvaresystemettracLånebeløpet som er gitt for kjøp av bil, fra det totale beløpet (Gull + Fast innskudd + Månedlig inntektsordning + Gull osv.) som banken har.

Billånet innvilges kun dersom det gjenværende beløpet fortsatt overstiger G, slik at alle kontoinnehavere kan ta ut G når som helst.

Bankers algoritmenotasjoner

Her er noen viktige notasjoner som brukes i Bankerens algoritme:

  • X: Angir det totale antallet prosesser i systemet.
  • Y: Indikerer det totale antallet ressurser som finnes i systemet.

Tilgjengelig

[1:Y] angir hvor mange forekomster av hver ressurstype som er tilgjengelige.

max

[1:X, 1:Y]: Uttrykker det maksimale antallet ressurser av typen j som prosessen i kan forespørre.

Tildeling

[1:X, 1:Y]: Angir ressursene av type j som for øyeblikket er allokert til prosess i.

Trenger

Uttrykker hvor mange flere ressurser av hver prosesstype jeg fortsatt trenger for å fullføre oppgaven.

Eksempel på Bankers algoritme

Anta at vi har følgende ressurser:

  • 5 pennestasjoner
  • 2 skrivere
  • 4 skannere
  • 3 harddisker

Her har vi laget en vektor som representerer totale ressurser: Tilgjengelig = (5, 2, 4, 3).

Anta at det er fire prosesser. De tilgjengelige ressursene er allerede allokert i henhold til matrisetabellen nedenfor.

Process Name Pennedrev Skriver Skanner harddisk
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

Her er de tildelte ressursene summen av disse kolonnene:

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

Vi lager også en matrise for å vise antallet av hver ressurs som kreves for alle prosessene. Denne matrisen kalles Trenger = (3, 0, 2, 2).

Process Name Pennedrev Skriver Skanner harddisk
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Den tilgjengelige vektoren vil være:

Tilgjengelig = Tilgjengelig – Allokert

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

= (1, 0, 2, 0)

Algoritme for ressursforespørsel

Ressursforespørselsalgoritmen lar deg representere systematferden når en bestemt prosess foretar en ressursforespørsel.

La oss forstå dette ved hjelp av følgende trinn:

Trinn 1) Når det totale antallet forespurte forekomster av alle ressurser er mindre enn prosessen, gå videre til trinn 2.

Trinn 2) Når antallet forespurte forekomster av hver enkelt ressurstype er færre sammenlignet med de tilgjengelige ressursene av hver type, vil den bli behandlet til neste trinn. Ellers må prosessen vente på grunn av utilgjengelighet av tilstrekkelige ressurser.

Trinn 3) Ressursen allokeres som vist i pseudokoden nedenfor.

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

Dette siste trinnet utføres fordi systemet må anta at ressurser er tildelt, slik at det er færre ressurser tilgjengelig etter tildeling.

Kjennetegn ved Bankers Algorithm

Her er de viktigste egenskapene til bankens algoritme:

  • Oppbevarer mange ressurser som tilfredsstiller kravene til minst én klient.
  • Når en prosess får alle ressursene sine, må den returnere dem i en begrenset periode.
  • Når en prosess ber om en ressurs, kan det hende den må vente.
  • Systemet har et begrenset antall ressurser.
  • Den tilbyr en avansert funksjon for maksimal ressursallokering.

Ulempen med Bankers algoritme

Her er ulempene/fordelene ved å bruke bankens algoritme:

  • Det tillater ikke at prosessen endrer sitt maksimale behov under behandling.
  • Det tillater at alle forespørsler innvilges innen en begrenset tid, men ett år er en fastsatt periode for det.
  • Alle prosesser må kjenne til og angi sitt maksimale ressursbehov på forhånd.

Spørsmål og svar

En sikker tilstand er en tilstand der minst én utførelsesordre lar hver prosess få sine maksimale ressurser og fullføre. Hvis ingen slik ordre finnes, er tilstanden usikker og kan føre til fastlåst situasjon.

Forebygging av vranglås fjerner én betingelse som er nødvendig for vranglås på forhånd. Unngåelse av vranglås, i likhet med bankens algoritme, tillater disse betingelsene, men kontrollerer hver forespørsel for å holde systemet trygt.

Den er oppkalt etter måten en bank håndterer lån på. En bank låner bare ut penger hvis den fortsatt kan tilfredsstille alle kunder. På samme måte gir algoritmen bare ressurser hvis alle prosesser fortsatt kan fullføres på en sikker måte.

AI kan forutsi ressursbehov og oppdage risikable allokeringsmønstre før de forårsaker fastlåste situasjoner. Den kan foreslå hvilke forespørsler som skal utsettes, og dermed utfylle bankens algoritme i komplekse systemer der maksimale behov er vanskelige å forutsi.

Ikke helt. Bankeralgoritmen garanterer et trygt resultat når maksimale behov er kjent. AI kan forbedre prediksjon og effektivitet, men fungerer best sammen med den, ikke som en fullstendig erstatning.

Oppsummer dette innlegget med: