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.
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.

