logo

Pankkiirin algoritmi käyttöjärjestelmässä (OS)

Se on pankkiirin algoritmi välttää umpikujaa ja kohdentaa resursseja turvallisesti jokaiseen tietokonejärjestelmän prosessiin. ' S-State' tutkii kaikki mahdolliset testit tai toiminnot ennen kuin päättää, sallitaanko kohdistaminen kullekin prosessille. Se myös auttaa käyttöjärjestelmää jakamaan resurssit onnistuneesti kaikkien prosessien välillä. Pankkiirin algoritmi on nimetty, koska se tarkistaa, pitäisikö henkilölle sanktioida lainasumma vai ei, jotta pankkijärjestelmä simuloi resursseja turvallisesti. Tässä osiossa opimme Pankkiirin algoritmi yksityiskohtaisesti. Lisäksi ratkaisemme ongelmia sen perusteella Pankkiirin algoritmi . Ymmärtääksemme pankkiirin algoritmin ensin näemme siitä oikean sanaesimerkin.

Oletetaan, että tietyn pankin tilinhaltijoiden määrä on 'n' ja pankin kokonaismäärä on 'T'. Jos tilinomistaja hakee lainaa; Ensin pankki vähentää lainasumman täydestä käteissummasta ja arvioi sitten, että kassaero on suurempi kuin T hyväksyäkseen lainasumman. Näihin toimenpiteisiin ryhdytään, koska jos toinen henkilö hakee lainaa tai nostaa jonkin summan pankista, se auttaa pankkia hallitsemaan ja hoitamaan kaikkea ilman pankkijärjestelmän toimivuuden rajoituksia.

Samoin se toimii an käyttöjärjestelmä . Kun tietokonejärjestelmään luodaan uusi prosessi, prosessin on annettava käyttöjärjestelmälle kaikenlaisia ​​tietoja, kuten tulevia prosesseja, niiden resursseja koskevia pyyntöjä, niiden laskemista ja viiveitä. Näiden kriteerien perusteella käyttöjärjestelmä päättää, mikä prosessisekvenssi tulee suorittaa tai odottaa, jotta järjestelmässä ei tapahdu lukkiutumista. Siksi se tunnetaan myös nimellä lukkiutuman välttämisalgoritmi tai lukkiutuman havaitseminen käyttöjärjestelmässä.

Edut

Seuraavat ovat pankkiirin algoritmin keskeiset ominaisuudet:

int parseint
  1. Se sisältää erilaisia ​​resursseja, jotka täyttävät kunkin prosessin vaatimukset.
  2. Jokaisen prosessin tulee antaa käyttöjärjestelmälle tietoa tulevista resurssipyynnöistä, resurssien määrästä ja siitä, kuinka kauan resursseja säilytetään.
  3. Se auttaa käyttöjärjestelmää hallitsemaan ja hallitsemaan prosessipyyntöjä jokaiselle tietokonejärjestelmän resurssityypille.
  4. Algoritmilla on Max resurssi -attribuutti, joka osoittaa, että jokainen prosessi voi sisältää maksimimäärän resursseja järjestelmässä.

Haitat

  1. Se vaatii kiinteän määrän prosesseja, eikä järjestelmässä voi käynnistää lisäprosesseja prosessia suoritettaessa.
  2. Algoritmi ei enää salli prosessien vaihtaa maksimitarpeitaan tehtäviensä käsittelyn aikana.
  3. Jokaisen prosessin on tiedettävä ja ilmoitettava järjestelmän maksimiresurssitarpeensa etukäteen.
  4. Resurssipyyntöjen määrä voidaan myöntää rajallisessa ajassa, mutta resurssien allokoinnin aikaraja on yksi vuosi.

Kun työskentelet pankkiirin algoritmin kanssa, se pyytää tietää kolmesta asiasta:

  1. Kuinka paljon kukin prosessi voi pyytää jokaisesta järjestelmän resurssista. Se on merkitty [ MAX ] pyyntö.
  2. Kuinka paljon kukin prosessi pitää tällä hetkellä kutakin resurssia järjestelmässä. Se on merkitty [ MYÖNNETTY ] resurssi.
  3. Se edustaa kunkin järjestelmässä tällä hetkellä saatavilla olevan resurssin määrää. Se on merkitty [ SAATAVILLA ] resurssi.

Seuraavat ovat tärkeitä tietorakenteiden termejä, joita käytetään pankkiirin algoritmissa seuraavasti:

Oletetaan, että n on prosessien lukumäärä ja m on kunkin tietokonejärjestelmässä käytetyn resurssityypin lukumäärä.

    Saatavilla: Se on taulukko, jonka pituus on 'm', joka määrittää jokaisen järjestelmässä käytettävissä olevan resurssityypin. Kun Käytettävissä[j] = K, tarkoittaa, että järjestelmässä on käytettävissä 'K' resurssityyppiä R[j].Max:Se on [n x m] matriisi, joka osoittaa, että jokainen prosessi P[i] voi tallentaa maksimimäärän resursseja R[j] (kukin tyyppi) järjestelmään.Jako:Se on m x n tilauksen matriisi, joka ilmaisee järjestelmän kullekin prosessille tällä hetkellä allokoitujen resurssien tyypin. Kun allokointi [i, j] = K, se tarkoittaa, että prosessille P[i] on tällä hetkellä allokoitu K resurssityyppiä R[j] olevaa esiintymää järjestelmässä.Tarve:Se on M x N matriisisekvenssi, joka edustaa kunkin prosessin jäljellä olevien resurssien määrää. Kun tarve[i] [j] = k, prosessi P[i] voi vaatia K lisää esiintymää resurssityyppiä Rj suorittaakseen määrätyn työn.
    Nedd[i][j] = Max[i][j] - Allokaatio[i][j].Suorittaa loppuun: Se on järjestyksen vektori m . Se sisältää Boolen arvon (tosi/epätosi), joka osoittaa, onko prosessi allokoitu pyydetyille resursseille ja onko kaikki resurssit vapautettu tehtävän suorittamisen jälkeen.

Pankkiirin algoritmi on turvallisuusalgoritmin ja resurssipyyntöalgoritmin yhdistelmä, joka ohjaa prosesseja ja välttää lukkiutumisen järjestelmässä:

Turvallisuusalgoritmi

Se on turvaalgoritmi, jota käytetään tarkistamaan, onko järjestelmä turvallisessa tilassa tai noudattaako se pankkiirin algoritmin turvallista järjestystä:

1. Vektoreita on kaksi Wok ja Suorittaa loppuun pituus m ja n turvallisuusalgoritmissa.

Alusta: Työ = käytettävissä
Valmis[i] = epätosi; kun I = 0, 1, 2, 3, 4… n - 1.

2. Tarkista kunkin resurssityypin [i] saatavuustila, kuten:

Tarvitsen [i]<= work
Valmis[i] == false
Jos i:tä ei ole olemassa, siirry vaiheeseen 4.

3. Työ = Työ +Alokaatio(i) // saadaksesi uuden resurssin allokoinnin

Valmis[i] = tosi

Siirry vaiheeseen 2 tarkistaaksesi resurssien saatavuuden tilan seuraavaa prosessia varten.

4. Jos Valmis[i] == tosi; Se tarkoittaa, että järjestelmä on turvallinen kaikille prosesseille.

Resurssipyyntöalgoritmi

Resurssipyyntöalgoritmi tarkistaa, kuinka järjestelmä käyttäytyy, kun prosessi tekee kunkin tyyppisen resurssipyynnön järjestelmässä pyyntömatriisina.

Luodaan resurssipyyntötaulukko R[i] jokaiselle prosessille P[i]. Jos resurssipyyntöi[j] on yhtä suuri kuin 'K', mikä tarkoittaa, että prosessi P[i] vaatii järjestelmässä 'k' resurssityyppiä R[j].

1. Kun numero pyydetyt resurssit kunkin tyypin on pienempi kuin Tarve resurssit, siirry vaiheeseen 2 ja jos ehto epäonnistuu, mikä tarkoittaa, että prosessi P[i] ylittää resurssin maksimivaatimuksensa. Kuten ilmaus viittaa:

Jos pyyntö (i)<= need
Siirry vaiheeseen 2;

2. Ja kun kunkin tyypin pyydettyjen resurssien määrä on pienempi kuin kullekin prosessille käytettävissä oleva resurssi, siirry vaiheeseen (3). Kuten ilmaus viittaa:

Jos pyyntö (i)<= available
Muutoin prosessin P[i] on odotettava resurssia, koska se ei ole käytettävissä.

3. Kun pyydetty resurssi allokoidaan prosessille muuttamalla tilaa:

hiba bukhari

Saatavilla = Saatavilla - Pyydä
Allokaatio(i) = Jako(i) + Pyyntö (i)
Tarvei= Tarvitaani- Pyyntöi

Kun resurssien allokointitila on turvallinen, sen resurssit allokoidaan prosessille P(i). Ja jos uusi tila ei ole turvallinen, prosessin P(i) on odotettava kutakin pyyntötyyppiä R(i) ja palautettava vanha resurssien allokointitila.

Esimerkki: Tarkastellaan järjestelmää, joka sisältää viisi prosessia P1, P2, P3, P4, P5 ja kolme resurssityyppiä A, B ja C. Seuraavat ovat resurssityypit: A:lla on 10, B:llä 5 ja resurssityypillä C on 7 esiintymää.

Käsitellä asiaa jakaminen
A B C
Max
A B C
Saatavilla
A B C
P1 0 1 0 7 5 3 3 3 2
P2 200 3 2 2
P3 3 0 2 9 0 2
P4 2 1 1 2 2 2
P5 0 0 2 4 3 3

Vastaa seuraaviin kysymyksiin käyttämällä pankkiirin algoritmia:

  1. Mikä on tarvematriisin viite?
  2. Selvitä, onko järjestelmä turvallinen vai ei.
  3. Mitä tapahtuu, jos prosessin P1 resurssipyyntö (1, 0, 0) voi järjestelmä hyväksyä tämän pyynnön välittömästi?

Vuosia. 2: Tarvematriisin konteksti on seuraava:

Tarve [i] = maksimi [i] - Varaus [i]
P1:n tarve: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
P2:n tarve: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
P3:n tarve: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
P4:n tarve: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
P5:n tarve: (4, 3, 3) - (0, 0, 2) = 4, 3, 1

Käsitellä asiaa Tarve
A B C
P1 7 4 3
P2 1 2 2
P3 6 0 0
P4 0 1 1
P5 4 3 1

Siksi loimme tarvematriisin kontekstin.

Ans. 2: Käytä pankkiirin algoritmia:

A:n, B:n ja C:n käytettävissä olevat resurssit ovat 3, 3 ja 2.

Nyt tarkistamme, onko jokaista resurssipyyntötyyppiä saatavilla jokaiselle prosessille.

Vaihe 1: Prosessi P1:

Tarve<= available< p>

7, 4, 3<= 2 3, condition is väärä .

Joten tarkastelemme toista prosessia, P2.

Vaihe 2: Prosessi P2:

Tarve<= available< p>

1, 2, 2<= 2 3, condition totta

Uusi saatavilla = käytettävissä + Allokaatio

(3, 3, 2) + (2, 0, 0) => 5, 3, 2

Samalla tavalla tarkastelemme toista prosessia P3.

Vaihe 3: Prosessi P3:

P3 Tarve<= available< p>

6, 0, 0<= 2 5, 3, condition is väärä .

Samalla tavalla tarkastelemme toista prosessia, P4.

Vaihe 4: Prosessi P4:

java-merkkijono jsoniin

P4 Tarve<= available< p>

0, 1, 1<= 2 5, 3, condition is totta

Uusi käytettävissä oleva resurssi = Käytettävissä + Varaus

5, 3, 2 + 2, 1, 1 => 7, 4, 3

Samalla tavalla tarkastelemme toista prosessia P5.

Vaihe 5: Prosessi P5:

P5 Tarve<= available< p>

4, 3, 1<= 3 7, 4, condition is totta

Uusi käytettävissä oleva resurssi = Käytettävissä + Varaus

7, 4, 3 + 0, 0, 2 => 7, 4, 5

Nyt tarkastelemme jälleen kutakin resurssipyyntötyyppiä prosesseille P1 ja P3.

Vaihe 6: Prosessi P1:

P1 Tarvitsen<= available< p>

7, 4, 3<= 5 7, 4, condition is totta

Uusi käytettävissä oleva resurssi = Saatavilla + jako

7, 4, 5 + 0, 1, 0 => 7, 5, 5

Joten tarkastelemme toista prosessia P2.

Vaihe 7: Prosessi P3:

P3 Tarve<= available< p>

6, 0, 0<= 5 7, 5, condition is true< p>

Uusi käytettävissä oleva resurssi = Saatavilla + jako

7, 5, 5 + 3, 0, 2 => 10, 5, 7

Tästä syystä suoritamme pankkiirin algoritmin löytääksemme turvallisen tilan ja turvallisen sekvenssin, kuten P2, P4, P5, P1 ja P3.

merkkijono n java

Vuosia. 3: Pyynnön (1, 0, 2) hyväksymiseksi meidän on ensin tarkistettava se Pyyntö<= available< strong>, eli (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>