Pankkiirin algoritmi sisään Operating-järjestelmä [esimerkki]

⚡ Älykäs yhteenveto

Pankkiirin algoritmi on lukkiutumien välttämiseen tarkoitettu menetelmä, joka testaa, pitääkö resurssien allokointi järjestelmän turvallisessa tilassa. Pankkitoiminnan mukaan nimetty algoritmi hyväksyy pyynnön vain, jos resursseja on jäljellä riittävästi kaikkien prosessien tyydyttämiseksi.

  • 🏦 Tarkoitus: Se välttää umpikujan tarkistamalla, että resurssien allokointi jättää järjestelmän turvalliseksi.
  • 🔢 Neljä matriisia: Käytettävissä, Maksimi, Kohdistus ja Tarve track resurssien käyttö.
  • 🧮 Turvallinen tila: Pyyntö hyväksytään vain, jos kaikki prosessit voidaan vielä suorittaa loppuun.
  • 📋 Vaatimus: Jokaisen prosessin on ilmoitettava enimmäisresurssitarpeensa etukäteen.
  • Hyöty: Varmistaa, että resurssit tyydyttävät vähintään yhden asiakkaan milloin tahansa.
  • ⚠️ Haittapuoli: Prosessit eivät voi muuttaa maksimitarvettaan suorituksen aikana.

Pankkiirin algoritmi Operating System

Mikä on pankkiirin algoritmi?

Pankkiirin algoritmi käytetään pääasiassa pankkijärjestelmässä välttämään umpikuja. Se auttaa sinua selvittämään, myönnetäänkö lainaa vai ei.

Tällä algoritmilla testataan allokoinnin simulointia turvallisesti kaikkien resurssien käytettävissä olevan enimmäismäärän määrittämiseksi. Se myös tarkistaa kaikki mahdolliset toiminnot ennen kuin päättää, pitäisikö allokointia jatkaa vai ei.

Esimerkiksi tietyllä pankilla on X tilinomistajaa, ja heidän tileillään on yhteensä G rahaa.

Kun pankki käsittelee autolainaa, ohjelmistojärjestelmä alittaatracts auton ostamiseen myönnetyn lainan määrä pankin käytettävissä olevista kokonaisvaroista (G + määräaikainen talletus + kuukausitulojärjestelmä + kulta jne.).

Se myöntää autolainan vain, jos jäljellä oleva rahamäärä ylittää G:n, joten kaikki tilinomistajat voivat nostaa G:tä milloin tahansa.

Pankkiirin algoritmimerkinnät

Tässä on joitakin tärkeitä pankkiirin algoritmissa käytettyjä merkintöjä:

  • X: Ilmaisee järjestelmässä olevien prosessien kokonaismäärän.
  • K: Ilmaisee järjestelmässä olevien resurssien kokonaismäärän.

Saatavissa

[1:Y] ilmaisee, kuinka monta esiintymää kutakin resurssityyppiä on käytettävissä.

max

[1:X, 1:Y]: Ilmaisee j-tyypin resurssien enimmäismäärän, jota prosessi i voi pyytää.

jako

[1:X, 1:Y]: Ilmaisee prosessille i tällä hetkellä allokoidut j-tyypin resurssit.

Tarve

Ilmaisee, kuinka monta resurssia kutakin prosessityyppiä i vielä tarvitsee tehtävänsä suorittamiseen.

Esimerkki pankkiirin algoritmista

Oletetaan, että meillä on seuraavat resurssit:

  • 5 kynäasemaa
  • 2 tulostinta
  • 4 Skannerit
  • 3 kiintolevyä

Tässä olemme luoneet vektorin, joka edustaa kokonaisresursseja: Käytettävissä = (5, 2, 4, 3).

Oletetaan, että prosesseja on neljä. Käytettävissä olevat resurssit on jo allokoitu alla olevan matriisitaulukon mukaisesti.

Prosessin nimi Kynä ajaa Kirjoitin Skanneri kiintolevy
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Yhteensä 4 2 2 3

Tässä allokoidut resurssit ovat näiden sarakkeiden summa:

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

Luomme myös matriisin, joka näyttää jokaisen prosessin edellyttämän resurssin määrän. Tätä matriisia kutsutaan Tarve = (3, 0, 2, 2).

Prosessin nimi Kynä ajaa Kirjoitin Skanneri kiintolevy
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Käytettävissä oleva vektori on:

Käytettävissä = Käytettävissä – Varattu

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

= (1, 0, 2, 0)

Resurssipyyntöalgoritmi

Resurssipyyntöalgoritmin avulla voit esittää järjestelmän toimintaa, kun tietty prosessi tekee resurssipyynnön.

Ymmärrämme tämän seuraavien vaiheiden avulla:

Vaihe 1) Kun kaikkien resurssien pyydettyjen esiintymien kokonaismäärä on pienempi kuin prosessi, siirry vaiheeseen 2.

Vaihe 2) Kun pyydettyjä esiintymiä kutakin resurssityyppiä on vähemmän kuin käytettävissä olevia resursseja, prosessi siirtyy seuraavaan vaiheeseen. Muussa tapauksessa prosessin on odotettava riittävien resurssien puuttumisen vuoksi.

Vaihe 3) Resurssi allokoidaan alla olevan pseudokoodin mukaisesti.

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

Tämä viimeinen vaihe suoritetaan, koska järjestelmän on oletettava, että resurssit on allokoitu, jotta allokoinnin jälkeen on käytettävissä vähemmän resursseja.

Pankkiirin algoritmin ominaisuudet

Tässä ovat pankkiirin algoritmin tärkeät ominaisuudet:

  • Säilyttää useita resursseja, jotka täyttävät ainakin yhden asiakkaan vaatimukset.
  • Aina kun prosessi saa kaikki resurssinsa, sen on palautettava ne rajoitetun ajan.
  • Kun prosessi pyytää resurssia, sen on ehkä odotettava.
  • Järjestelmässä on rajallinen määrä resursseja.
  • Se tarjoaa edistyneen ominaisuuden resurssien maksimointiin.

Pankkiirin algoritmin haitta

Tässä ovat pankkiirin algoritmin käytön haitat/haitat:

  • Se ei salli prosessin muuttaa maksimitarvettaan käsittelyn aikana.
  • Se sallii kaikkien pyyntöjen hyväksymisen rajoitetun ajan kuluessa, mutta yksi vuosi on sille kiinteä ajanjakso.
  • Kaikkien prosessien on tiedettävä ja ilmoitettava maksimiresurssitarpeensa etukäteen.

UKK

Turvallinen tila on sellainen, jossa ainakin yksi suorituskäsky antaa jokaiselle prosessille mahdollisuuden saada maksimiresurssinsa ja suorittaa prosessin loppuun. Jos tällaista käskyä ei ole, tila on vaarallinen ja voi johtaa lukkiutumiseen.

Lukkiutumisen esto poistaa yhden lukkiutumiseen tarvittavan ehdon etukäteen. Lukkiutumisen välttäminen, kuten pankkiirin algoritmi, sallii nämä ehdot, mutta tarkistaa jokaisen pyynnön pitääkseen järjestelmän turvallisena.

Se on nimetty pankkien lainojen hallinnointitavan mukaan. Pankki lainaa rahaa vain, jos se pystyy edelleen tyydyttämään jokaisen asiakkaan vaatimukset. Samoin algoritmi myöntää resursseja vain, jos kaikki prosessit voidaan edelleen suorittaa turvallisesti.

Tekoäly pystyy ennustamaan resurssien kysyntää ja havaitsemaan riskialttiita allokointimalleja ennen kuin ne aiheuttavat umpikujan. Se voi ehdottaa, mitä pyyntöjä lykätä, täydentäen pankkiirin algoritmia monimutkaisissa järjestelmissä, joissa enimmäistarpeita on vaikea ennustaa.

Ei täysin. Pankkiirin algoritmi takaa turvallisen tuloksen, kun maksimitarpeet tiedetään. Tekoäly voi parantaa ennustamista ja tehokkuutta, mutta se toimii parhaiten sen rinnalla, ei kokonaan sen korvaajana.

Tiivistä tämä viesti seuraavasti: