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.

  • 🏦 Doel: Het voorkomt een impasse door te controleren of de toewijzing van resources het systeem veilig laat.
  • 🔢 Vier matrices: Beschikbaar, maximaal, toewijzing en behoefte track resourcegebruik.
  • 🧮 Veilige staat: Een verzoek wordt alleen ingewilligd als alle processen nog kunnen worden afgerond.
  • 📋 Eis: Elk proces moet vooraf zijn maximale resourcebehoefte aangeven.
  • ✅ Voordeel: Garandeert dat er te allen tijde aan ten minste één klant wordt voldaan.
  • ⚠️ Nadeel: Processen kunnen hun maximale behoefte niet veranderen tijdens de uitvoering.

Bankiersalgoritme in Operating-systeem

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.

Veelgestelde vragen

Een veilige toestand is een toestand waarin ten minste één uitvoeringsvolgorde ervoor zorgt dat elk proces zijn maximale resources krijgt en kan worden voltooid. Als een dergelijke volgorde niet bestaat, is de toestand onveilig en kan dit leiden tot een deadlock.

Deadlockpreventie verwijdert één van de voorwaarden die nodig zijn voor een deadlock. Deadlockvermijding, zoals het bankiersalgoritme, laat die voorwaarden wel toe, maar controleert elk verzoek om de veiligheid van het systeem te waarborgen.

De naam is afgeleid van de manier waarop een bank leningen beheert. Een bank verstrekt alleen geld als ze nog steeds aan de behoeften van elke klant kan voldoen. Op dezelfde manier kent het algoritme alleen middelen toe als alle processen nog veilig kunnen worden voltooid.

AI kan de vraag naar resources voorspellen en risicovolle toewijzingspatronen detecteren voordat ze tot een impasse leiden. Het kan suggesties doen voor welke verzoeken moeten worden uitgesteld, als aanvulling op het bankiersalgoritme in complexe systemen waar de maximale behoeften moeilijk te voorspellen zijn.

Niet helemaal. Het bankiersalgoritme garandeert een veilig resultaat wanneer de maximale behoeften bekend zijn. AI kan de voorspelling en efficiëntie verbeteren, maar werkt het beste in combinatie ermee, niet als volledige vervanging.

Vat dit bericht samen met: