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
- Se sisältää erilaisia resursseja, jotka täyttävät kunkin prosessin vaatimukset.
- 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.
- Se auttaa käyttöjärjestelmää hallitsemaan ja hallitsemaan prosessipyyntöjä jokaiselle tietokonejärjestelmän resurssityypille.
- Algoritmilla on Max resurssi -attribuutti, joka osoittaa, että jokainen prosessi voi sisältää maksimimäärän resursseja järjestelmässä.
Haitat
- Se vaatii kiinteän määrän prosesseja, eikä järjestelmässä voi käynnistää lisäprosesseja prosessia suoritettaessa.
- Algoritmi ei enää salli prosessien vaihtaa maksimitarpeitaan tehtäviensä käsittelyn aikana.
- Jokaisen prosessin on tiedettävä ja ilmoitettava järjestelmän maksimiresurssitarpeensa etukäteen.
- 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:
- Kuinka paljon kukin prosessi voi pyytää jokaisesta järjestelmän resurssista. Se on merkitty [ MAX ] pyyntö.
- Kuinka paljon kukin prosessi pitää tällä hetkellä kutakin resurssia järjestelmässä. Se on merkitty [ MYÖNNETTY ] resurssi.
- 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ä.
Nedd[i][j] = Max[i][j] - Allokaatio[i][j].
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:
- Mikä on tarvematriisin viite?
- Selvitä, onko järjestelmä turvallinen vai ei.
- 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>
=>=>