Bankár algoritmusa be Operating rendszer [Példa]

⚡ Okos összefoglaló

A bankári algoritmus egy holtpont-elkerülő módszer, amely azt vizsgálja, hogy az erőforrások elosztása biztonságos állapotban tartja-e a rendszert. A banki algoritmusról elnevezett algoritmus csak akkor teljesíti a kérést, ha elegendő erőforrás áll rendelkezésre minden folyamat kielégítésére.

  • 🏦 Cél: Elkerüli a patthelyzetet azáltal, hogy ellenőrzi, hogy az erőforrás-elosztás biztonságos-e a rendszerben.
  • 🔢 Négy mátrix: Elérhető, Max, Elosztás és Szükséglet track erőforrás-felhasználás.
  • 🧮 Biztonságos állapot: Egy kérés csak akkor kerül jóváhagyásra, ha az összes folyamat még be tud fejeződni.
  • 📋 Követelmény: Minden folyamatnak előre deklarálnia kell a maximális erőforrásigényét.
  • Haszon: Biztosítja, hogy az erőforrások bármikor legalább egy ügyfél igényeit kielégítsék.
  • ⚠️ Hátrány: A folyamatok futás közben nem változtathatják meg a maximális igényüket.

Bankár algoritmusa Operating rendszer

Mi a Banker algoritmusa?

Bankár algoritmusa elsősorban a bankrendszerben használják a elkerülése érdekében holtpont. Segít eldönteni, hogy adnak-e kölcsönt vagy sem.

Ezzel az algoritmussal tesztelik az allokáció biztonságos szimulációját az összes erőforrás számára elérhető maximális összeg meghatározásához. Ezenkívül ellenőrzi az összes lehetséges tevékenységet, mielőtt eldönti, hogy az allokációt folytatni kell-e vagy sem.

Például egy adott banknak X számú számlatulajdonosa van, és a számláikon lévő teljes összeg G.

Amikor a bank feldolgoz egy autóhitelt, a szoftverrendszer alrendszeretracA bank teljes pénzösszegéből (G + lekötött betét + havi jövedelemterv + arany stb.) a gépjárművásárlásra nyújtott hitel összege.

Csak akkor nyújtja az autóhitelt, ha a fennmaradó összeg továbbra is meghaladja a G-t, így minden számlatulajdonos bármikor felvehet G-t.

Bankár algoritmus jelölései

Íme néhány fontos jelölés, amelyet a Banker algoritmusában használnak:

  • X: A rendszerben lévő folyamatok teljes számát jelzi.
  • Y: A rendszerben lévő erőforrások teljes számát jelzi.

Elérhető

Az [1:Y] azt jelzi, hogy az egyes erőforrástípusok hány példánya érhető el.

max

[1:X, 1:Y]: Kifejezi a j típusú erőforrások maximális számát, amelyet az i-edik folyamat kérhet.

Kiosztás

[1:X, 1:Y]: Az i folyamat számára jelenleg lefoglalt j típusú erőforrásokat jelzi.

Szükség

Azt fejezi ki, hogy az egyes típusú folyamatokból hány további erőforrásra van még szükség a feladat végrehajtásához.

Példa a Banker algoritmusra

Tételezzük fel, hogy a következő erőforrásokkal rendelkezünk:

  • 5 Pendrive
  • 2 nyomtató
  • 4 Szkenner
  • 3 merevlemez

Itt létrehoztunk egy vektort, amely az összes erőforrást reprezentálja: Elérhető = (5, 2, 4, 3).

Tegyük fel, hogy négy folyamat van. A rendelkezésre álló erőforrások már az alábbi mátrixtáblázat szerint vannak elosztva.

Folyamat neve Tollhajtók Nyomtató Scanner merevlemez
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
Összeg 4 2 2 3

Itt a lefoglalt erőforrások a következő oszlopok összege:

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

Létrehozunk egy Mátrixot is, amely megjeleníti az egyes folyamatokhoz szükséges erőforrások számát. Ezt a mátrixot ún Szükség = (3, 0, 2, 2).

Folyamat neve Tollhajtók Nyomtató Scanner merevlemez
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

Az elérhető vektor a következő lesz:

Elérhető = Elérhető – Lefoglalt

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

= (1, 0, 2, 0)

Erőforrás-igénylési algoritmus

Az erőforrás-kérelem algoritmus lehetővé teszi a rendszer viselkedésének ábrázolását, amikor egy adott folyamat erőforrás-kérést küld.

Értsük meg ezt a következő lépések segítségével:

Step 1) Ha az összes erőforrás kért példányainak száma kisebb, mint a folyamaté, folytassa a 2. lépéssel.

Step 2) Amikor az egyes erőforrástípusok kért példányainak száma kevesebb, mint az egyes típusok elérhető erőforrásainak száma, a feldolgozás a következő lépéssel folytatódik. Ellenkező esetben a folyamatnak várnia kell, mivel nem áll rendelkezésre elegendő erőforrás.

Step 3) Az erőforrás az alábbi pszeudokód szerint van lefoglalva.

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

Ezt az utolsó lépést azért hajtják végre, mert a rendszernek feltételeznie kell, hogy az erőforrások lefoglalásra kerültek, így a lefoglalás után kevesebb erőforrás áll rendelkezésre.

A bankár algoritmus jellemzői

Íme a banki algoritmus fontos jellemzői:

  • Sok olyan erőforrást tárol, amelyek legalább egy kliens igényeit kielégítik.
  • Amikor egy folyamat megkapja az összes erőforrást, korlátozott időn belül vissza kell adnia azokat.
  • Amikor egy folyamat erőforrást kér, előfordulhat, hogy várnia kell.
  • A rendszer korlátozott számú erőforrással rendelkezik.
  • Fejlett funkciót kínál a maximális erőforrás-elosztás érdekében.

A Banker algoritmus hátránya

Íme a bankár algoritmusának hátrányai/hátrányai:

  • Ez nem engedi, hogy a folyamat feldolgozás közben megváltoztassa a maximális igényét.
  • Lehetővé teszi, hogy minden kérést korlátozott időn belül teljesítsenek, de erre egy év egy rögzített időszak.
  • Minden folyamatnak ismernie kell és előre meg kell adnia maximális erőforrásigényét.

GYIK

A biztonságos állapot az, ahol legalább egy végrehajtási parancs lehetővé teszi, hogy minden folyamat a maximális erőforrásait kihasználja és befejezze a folyamatot. Ha ilyen parancs nem létezik, az állapot nem biztonságos, és holtponthoz vezethet.

A holtpont-megelőzés előre eltávolít egy, a holtponthoz szükséges feltételt. A holtpont-elkerülés, akárcsak a bankár algoritmusa, engedélyezi ezeket a feltételeket, de minden kérést ellenőrz a rendszer biztonsága érdekében.

A bankok hitelkezelési módjáról kapta a nevét. Egy bank csak akkor kölcsönöz pénzt, ha továbbra is minden ügyfelet ki tud elégíteni. Hasonlóképpen, az algoritmus csak akkor biztosít erőforrásokat, ha minden folyamat továbbra is biztonságosan végrehajtható.

A mesterséges intelligencia képes előre jelezni az erőforrás-igényeket, és még azelőtt felismerni a kockázatos elosztási mintákat, mielőtt azok patthelyzetet okoznának. Javaslatokat tehet arra vonatkozóan, hogy mely kéréseket kell elhalasztani, kiegészítve a banki algoritmust összetett rendszerekben, ahol a maximális igényeket nehéz megjósolni.

Nem teljesen. A bankár algoritmusa garantálja a biztonságos eredményt, amikor ismertek a maximális igények. A mesterséges intelligencia javíthatja az előrejelzést és a hatékonyságot, de a mesterséges intelligencia azzal együtt működik a legjobban, nem pedig teljes mértékben helyettesíti azt.

Foglald össze ezt a bejegyzést a következőképpen: