Bankininko algoritmas operacinėje sistemoje (pavyzdys)

Kas yra bankininko algoritmas?

Siekiant išvengti aklavietės, bankų algoritmas dažniausiai naudojamas bankų sistemoje. Tai padeda nustatyti, ar paskola bus suteikta, ar ne.

Šis algoritmas naudojamas norint saugiai imituoti paskirstymą siekiant nustatyti didžiausią turimą kiekį visiems ištekliams. Be to, prieš nustatant, ar paskirstymas turėtų būti tęsiamas, ar ne, ji tikrina visas galimas veiklas.

Pavyzdžiui, yra X konkretaus banko sąskaitų turėtojų skaičius, o bendra jų sąskaitų pinigų suma yra G.

Kai bankas apdoroja paskolą automobiliui, programinės įrangos sistema atima paskolos sumą, suteiktą automobiliui įsigyti, iš visų banko turimų pinigų (G + fiksuoto indėlio + mėnesio pajamų schemos + aukso ir kt.).

Ji taip pat tikrina, ar skirtumas yra didesnis nei ne. Jis paskolą automobiliui apdoroja tik tada, kai bankas turi pakankamai pinigų, net jei visi sąskaitos turėtojai vienu metu pasiima pinigus G.

Šioje operacinės sistemos pamokoje sužinosite:

  • Kas yra bankininko algoritmas?
  • Bankininko algoritmo užrašai
  • Bankininko algoritmo pavyzdys
  • Bankininko algoritmo charakteristikos
  • Bankininko algoritmo trūkumas

Bankininko algoritmo užrašai

Štai svarbus bankininko algoritme naudojamas žymėjimas:

  • X: nurodo bendrą sistemos procesų skaičių.
  • Y: nurodo bendrą sistemoje esančių išteklių skaičių.

Yra

[I: Y] nurodo turimą šaltinį.

Maks

[l: X, l: Y]: maksimalaus j tipo arba i proceso išteklių skaičiaus išraiška

Paskyrimas

[l: X, l: Y]. Nurodykite, kuriame procese gavote j tipo šaltinį

Reikia

Išsakykite, kiek daugiau išteklių bus galima skirti ateityje

Bankininko algoritmo pavyzdys

Tarkime, kad turime šiuos išteklius:

  • 5 rašikliai
  • 2 spausdintuvai
  • 4 skaitytuvai
  • 3 kietieji diskai

Čia mes sukūrėme vektorių, vaizduojantį išteklius: Available = (5, 2, 4, 3).

Tarkime, kad yra keturi procesai. Turimi ištekliai jau paskirstyti pagal toliau pateiktą matricos lentelę.

Proceso pavadinimas Rašiklių diskai Spausdintuvas Skaitytuvas Kietasis diskas
P 2 0 1 1
Klausimas 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Iš viso 4 2 2 3

Čia paskirstyti ištekliai yra šių stulpelių bendra suma:

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

Mes taip pat sukuriame matricą, kad būtų parodytas kiekvieno proceso, reikalingo visiems procesams, skaičius. Ši matrica vadinama poreikiu = (3,0,2,2)

Proceso pavadinimas Rašiklių diskai Spausdintuvas Skaitytuvas Kietasis diskas
P 1 1 0 0
Klausimas 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Galimas vektorius bus:

Yra = turima- skirta

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

= (1, 0, 2, 0)

Išteklių užklausos algoritmas

Išteklių užklausų algoritmas leidžia jums parodyti sistemos elgseną, kai konkretus procesas pateikia išteklių užklausą.

Leiskite tai suprasti atlikdami šiuos veiksmus:

1 žingsnis) Kai bendras prašomas visų išteklių egzempliorius yra mažesnis nei procesas, pereikite prie 2 veiksmo.

2 žingsnis) Kai prašomas kiekvieno išteklių tipo egzempliorius yra mažesnis, palyginti su turimais kiekvieno tipo ištekliais, jis bus apdorotas kitam žingsniui. Priešingu atveju proceso reikia laukti, nes nėra pakankamai išteklių.

3 žingsnis) Ištekliai paskirstomi taip, kaip parodyta žemiau pateiktame pseudokode.

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

Šis paskutinis žingsnis atliekamas todėl, kad sistema turi daryti prielaidą, kad ištekliai buvo paskirstyti. Taigi po paskirstymo turėtų būti mažiau išteklių.

Bankininko algoritmo charakteristikos

Čia pateikiamos svarbios bankininko algoritmo charakteristikos:

  • Saugokite daug išteklių, kurie patenkina bent vieno kliento reikalavimus
  • Kai tik procesas gauna visus išteklius, jis turi juos grąžinti per ribotą laikotarpį.
  • Kai procesas reikalauja išteklių, jo reikia palaukti
  • Sistema turi ribotą išteklių skaičių
  • Išankstinė funkcija maksimaliam išteklių paskirstymui

Bankininko algoritmo trūkumas

Čia yra bankininko algoritmo naudojimo trūkumai / trūkumai

  • Neleidžia procesui keisti maksimalaus poreikio apdorojant
  • Tai leidžia visus prašymus patenkinti ribotą laiką, tačiau vieneri metai tam yra nustatytas laikotarpis.
  • Visi procesai turi iš anksto žinoti ir nurodyti didžiausius išteklių poreikius.

Santrauka:

  • Bankininko algoritmas dažniausiai naudojamas bankų sistemoje, siekiant išvengti aklavietės. Tai padeda nustatyti, ar paskola bus suteikta, ar ne.
  • Bankininko algoritmuose naudojamos žymos yra 1) Galimos 2) Maks. 3) Paskirstymas 4) Poreikis
  • Išteklių užklausų algoritmas leidžia jums parodyti sistemos elgseną, kai konkretus procesas pateikia išteklių užklausą.
  • Bankininko algoritme saugoma daugybė išteklių, kurie patenkina bent vieno kliento reikalavimus
  • Didžiausias bankininko algoritmo trūkumas yra tai, kad jis neleidžia procesui apdoroti maksimalaus poreikio.

Įdomios straipsniai...