Bankiersalgoritme in Operating-systeem [Voorbeeld]
⚡ Slimme samenvatting
Het bankiersalgoritme is een methode om impassen te voorkomen door te testen of het toewijzen van resources het systeem in een veilige staat houdt. Het algoritme, vernoemd naar het bankwezen, willigt een verzoek alleen in als er nog voldoende resources over zijn om aan alle processen te voldoen.

Wat is het bankiersalgoritme?
Algoritme van de bank wordt voornamelijk in het bankwezen gebruikt om te voorkomen dat impasse. Het helpt u om te bepalen of er een lening wordt verstrekt of niet.
Dit algoritme wordt gebruikt om te testen of de toewijzing veilig kan worden gesimuleerd om het maximale beschikbare bedrag voor alle bronnen te bepalen. Ook worden alle mogelijke activiteiten gecontroleerd voordat wordt bepaald of de toewijzing al dan niet moet worden voortgezet.
Stel bijvoorbeeld dat er X rekeninghouders zijn bij een bepaalde bank, en het totale bedrag op hun rekeningen is G.
Wanneer de bank een autolening verwerkt, onderbreekt het softwaresysteem dit.tracHet is het bedrag van de lening dat wordt verstrekt voor de aankoop van een auto, uit het totale geld (G + Vaste deposito's + Maandelijks Inkomensschema + Goud, enz.) waarover de bank beschikt.
Het verstrekt de autolening alleen als het resterende bedrag nog steeds hoger is dan G, dus alle rekeninghouders kunnen G op elk moment opnemen.
Notaties van het bankiersalgoritme
Hieronder vindt u enkele belangrijke notaties die in het bankiersalgoritme worden gebruikt:
- X: Geeft het totale aantal processen in het systeem aan.
- Y: Geeft het totale aantal bronnen aan dat in het systeem aanwezig is.
Beschikbaar
[1:Y] geeft aan hoeveel exemplaren van elk resourcetype beschikbaar zijn.
Max
[1:X, 1:Y]: Geeft het maximale aantal resources van type j aan dat proces i kan aanvragen.
Toewijzing
[1:X, 1:Y]: Geeft de resources van type j aan die momenteel aan proces i zijn toegewezen.
Gebruik
Geeft aan hoeveel resources van elk type proces i nog nodig heeft om de taak te voltooien.
Voorbeeld van het algoritme van Banker
Stel dat we de volgende bronnen hebben:
- 5 Pen-drives
- 2 printers
- 4 scanners
- 3 harde schijven
Hier hebben we een vector gemaakt die de totale hulpbronnen vertegenwoordigt: Beschikbaar = (5, 2, 4, 3).
Stel dat er vier processen zijn. De beschikbare middelen zijn al toegewezen volgens onderstaande matrixtabel.
| proces Naam | Penaandrijvingen | Printer | Scanner | harddisk |
|---|---|---|---|---|
| P | 2 | 0 | 1 | 1 |
| Q | 0 | 1 | 0 | 0 |
| R | 1 | 0 | 1 | 1 |
| S | 1 | 1 | 0 | 1 |
| Totaal | 4 | 2 | 2 | 3 |
Hier zijn de toegewezen middelen de som van deze kolommen:
Toegewezen = (4, 2, 2, 3).
We creëren ook een matrix om het aantal van elke resource weer te geven die nodig is voor alle processen. Deze matrix wordt genoemd Gebruik = (3, 0, 2, 2).
| proces Naam | Penaandrijvingen | Printer | Scanner | harddisk |
|---|---|---|---|---|
| P | 1 | 1 | 0 | 0 |
| Q | 0 | 1 | 1 | 2 |
| R | 2 | 1 | 0 | 0 |
| S | 0 | 0 | 1 | 0 |
De beschikbare vector zal zijn:
Beschikbaar = Beschikbaar – Toegewezen
= (5, 2, 4, 3) – (4, 2, 2, 3)
= (1, 0, 2, 0)
Algoritme voor resourceverzoeken
Het resourceaanvraagalgoritme stelt u in staat het systeemgedrag weer te geven wanneer een specifiek proces een resource aanvraagt.
Laten we dit aan de hand van de volgende stappen begrijpen:
Stap 1) Als het totale aantal aangevraagde instanties van alle resources kleiner is dan het aantal processen, ga dan verder naar stap 2.
Stap 2) Als het aantal gevraagde exemplaren van elk resourcetype lager is dan het aantal beschikbare exemplaren van elk type, wordt de verwerking voortgezet naar de volgende stap. Anders moet het proces wachten vanwege een tekort aan resources.
Stap 3) De bron wordt toegewezen zoals weergegeven in de onderstaande pseudocode.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Deze laatste stap wordt uitgevoerd omdat het systeem ervan uit moet gaan dat er resources zijn toegewezen, waardoor er na de toewijzing minder resources beschikbaar zijn.
Kenmerken van het bankiersalgoritme
Hieronder volgen de belangrijkste kenmerken van het bankiersalgoritme:
- Bevat veel resources die voldoen aan de eisen van ten minste één klant.
- Wanneer een proces al zijn bronnen krijgt, moet het deze binnen een beperkte periode teruggeven.
- Wanneer een proces een resource aanvraagt, kan het even moeten wachten.
- Het systeem beschikt over een beperkt aantal resources.
- Het biedt een geavanceerde functie voor maximale toewijzing van middelen.
Nadeel van het algoritme van Banker
Hieronder volgen de nadelen van het gebruik van het bankiersalgoritme:
- Het proces kan zijn maximale behoefte tijdens de verwerking niet wijzigen.
- Het maakt het mogelijk om alle verzoeken binnen een beperkte tijd in te willigen, maar een jaar is daarvoor een vaste periode.
- Alle processen moeten vooraf hun maximale resourcebehoeften kennen en aangeven.
