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

