logo

Bankirjev algoritem v operacijskem sistemu (OS)

To je bančni algoritem, ki se uporablja za izogibajte se zastoju in dodeli sredstva varno za vsak proces v računalniškem sistemu. ' S-država' preuči vse možne preizkuse ali dejavnosti, preden se odloči, ali naj se dodelitev dovoli posameznemu procesu. Pomaga tudi operacijskemu sistemu pri uspešni delitvi virov med vsemi procesi. Bankirjev algoritem je poimenovan zato, ker preverja, ali je treba osebi sankcionirati znesek posojila ali ne, da bi bančnemu sistemu pomagal varno simulirati alokacijske vire. V tem razdelku se bomo naučili Bankirjev algoritem Podrobno. Prav tako bomo reševali probleme na podlagi Bankirjev algoritem . Da bi razumeli Bankirjev algoritem, si bomo najprej ogledali njegov pravi besedni primer.

Recimo, da je število imetnikov računa v določeni banki 'n', skupni denar v banki pa 'T'. Če imetnik računa zaprosi za posojilo; najprej banka odšteje znesek posojila od celotne gotovine in nato oceni, da je razlika v gotovini večja od T, da odobri znesek posojila. Ti koraki so sprejeti, ker če druga oseba zaprosi za posojilo ali dvigne določen znesek pri banki, to banki pomaga upravljati in upravljati vse stvari brez kakršnih koli omejitev v funkcionalnosti bančnega sistema.

Podobno deluje v operacijski sistem . Ko se v računalniškem sistemu ustvari nov proces, mora operacijskemu sistemu zagotoviti vse vrste informacij, kot so prihajajoči procesi, zahteve za njihove vire, njihovo štetje in zamude. Na podlagi teh meril se operacijski sistem odloči, katero zaporedje procesov naj se izvede ali počaka, da v sistemu ne pride do zastoja. Zato je znan tudi kot algoritem za izogibanje zastoju oz odkrivanje zastoja v operacijskem sistemu.

Prednosti

Sledijo bistvene značilnosti Bankirjevega algoritma:

  1. Vsebuje različne vire, ki izpolnjujejo zahteve vsakega procesa.
  2. Vsak proces mora operacijskemu sistemu zagotoviti informacije o prihajajočih zahtevah po virih, številu virov in o tem, kako dolgo bodo viri zadržani.
  3. Pomaga operacijskemu sistemu pri upravljanju in nadzoru procesnih zahtev za vsako vrsto vira v računalniškem sistemu.
  4. Algoritem ima atribut Max resource, ki predstavlja, da lahko vsak proces zadrži največje število virov v sistemu.

Slabosti

  1. Zahteva določeno število procesov in med izvajanjem procesa v sistemu ni mogoče zagnati dodatnih procesov.
  2. Algoritem procesom ne dovoljuje več izmenjave njegovih največjih potreb med obdelavo njegovih nalog.
  3. Vsak proces mora vnaprej poznati in navesti svoje največje zahteve po sredstvih za sistem.
  4. Število zahtevkov za vire je mogoče odobriti v omejenem času, vendar je časovna omejitev za dodelitev virov eno leto.

Ko dela z bančnim algoritmom, ta zahteva informacije o treh stvareh:

  1. Koliko lahko vsak proces zahteva za vsak vir v sistemu. Označena je z [ MAKS ] prošnja.
  2. Koliko vsak proces trenutno zadržuje vsak vir v sistemu. Označena je z [ DODELJENO ] vir.
  3. Predstavlja število vsakega vira, ki je trenutno na voljo v sistemu. Označena je z [ NA VOLJO ] vir.

Sledijo pomembni izrazi podatkovnih struktur, ki se uporabljajo v bankirjevem algoritmu, kot sledi:

Recimo, da je n število procesov in m število vsake vrste virov, uporabljenih v računalniškem sistemu.

    Na voljo: To je polje dolžine 'm', ki definira vsako vrsto vira, ki je na voljo v sistemu. Ko je na voljo [j] = K, pomeni, da je v sistemu na voljo 'K' primerkov vrste virov R[j].Max:To je matrika [n x m], ki kaže, da lahko vsak proces P[i] shrani največje število virov R[j] (vsak tip) v sistemu.Dodelitev:To je matrika m x n naročil, ki označuje vrsto sredstev, ki so trenutno dodeljena vsakemu procesu v sistemu. Ko je dodelitev [i, j] = K, to pomeni, da je procesu P[i] trenutno dodeljenih K primerkov vrste virov R[j] v sistemu.Potrebujemo:Je matrično zaporedje M x N, ki predstavlja število preostalih virov za vsak proces. Ko je Potreba[i] [j] = k, lahko proces P[i] zahteva še K več primerkov vrste virov Rj za dokončanje dodeljenega dela.
    Nedd[i][j] = Max[i][j] - Dodelitev[i][j].Končaj: Je vektor reda m . Vključuje logično vrednost (true/false), ki označuje, ali je bil proces dodeljen zahtevanim virom in so bili vsi viri sproščeni po končani nalogi.

Bankirjev algoritem je kombinacija varnostnega algoritma in algoritma za zahtevo po virih za nadzor procesov in preprečevanje zastoja v sistemu:

Varnostni algoritem

Je varnostni algoritem, ki se uporablja za preverjanje, ali je sistem v varnem stanju ali sledi varnemu zaporedju v algoritmu bančnika:

1. Obstajata dva vektorja vok in Končaj dolžine m in n v varnostnem algoritmu.

Inicializacija: Delo = Na voljo
Končaj[i] = false; za I = 0, 1, 2, 3, 4… n - 1.

2. Preverite stanje razpoložljivosti za vsako vrsto virov [i], kot so:

Potrebujem[i]<= work
Finish[i] == false
Če i ne obstaja, pojdite na 4. korak.

3. Delo = Delo +Dodelitev(i) // za pridobitev nove dodelitve virov

Finish[i] = res

Pojdite na 2. korak, da preverite stanje razpoložljivosti virov za naslednji postopek.

nedeterministični končni avtomati

4. Če je Finish[i] == true; pomeni, da je sistem varen za vse procese.

Algoritem zahteve za vir

Algoritem za zahtevo po sredstvih preverja, kako se bo sistem obnašal, ko proces naredi vsako vrsto zahteve po sredstvih v sistemu kot matriko zahtev.

Ustvarimo matriko zahtev virov R[i] za vsak proces P[i]. Če je Zahteva za virjaz[j] enako 'K', kar pomeni, da proces P[i] zahteva 'k' primerkov vrste virov R[j] v sistemu.

1. Ko se število zahtevana sredstva vsake vrste je manj kot Potreba virov, pojdite na korak 2 in če pogoj ne uspe, kar pomeni, da proces P[i] preseže svojo največjo zahtevo za vir. Kot pove izraz:

Če zahteva(i)<= need
Pojdite na 2. korak;

2. Ko je število zahtevanih virov vsake vrste manjše od razpoložljivega vira za vsak proces, pojdite na korak (3). Kot pove izraz:

Če zahteva(i)<= available
Sicer mora proces P[i] počakati na vir, ker ni na voljo za uporabo.

3. Ko je zahtevani vir dodeljen procesu s spremembo stanja:

seštevalnik polni seštevalnik

Na voljo = Na voljo - Zahteva
Dodelitev(i) = Dodelitev(i) + zahteva (i)
Potrebajaz= Potrebajaz- Prošnjajaz

Ko je stanje dodeljevanja virov varno, so njegovi viri dodeljeni procesu P(i). In če novo stanje ni varno, mora proces P (i) počakati na vsako vrsto zahteve R (i) in obnoviti staro stanje dodeljevanja virov.

primer: Razmislite o sistemu, ki vsebuje pet procesov P1, P2, P3, P4, P5 in tri vrste virov A, B in C. Sledijo tipi virov: A ima 10, B ima 5 in tip vira C ima 7 primerkov.

Proces Dodelitev
A B C
Maks
A B C
Na voljo
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

Z bankirjevim algoritmom odgovorite na naslednja vprašanja:

  1. Kakšna je referenca matrike potreb?
  2. Ugotovite, ali je sistem varen ali ne.
  3. Kaj se bo zgodilo, če lahko sistem zahtevo za vir (1, 0, 0) za proces P1 sprejme to zahtevo takoj?

leta. 2: Kontekst matrike potreb je naslednji:

Potreba [i] = največ [i] - dodelitev [i]
Potreba po P1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Potreba po P2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Potreba po P3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Potreba po P4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Potreba po P5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1

Proces Potreba
A B C
P1 7 4 3
P2 1 2 2
P3 6 0 0
P4 0 1 1
P5 4 3 1

Zato smo ustvarili kontekst matrike potreb.

Ans. 2: Uporabite bankirjev algoritem:

Razpoložljivi viri A, B in C so 3, 3 in 2.

Zdaj preverimo, ali je vsaka vrsta zahteve za vir na voljo za vsak proces.

Korak 1: Za proces P1:

Potreba<= available< p>

7, 4, 3<= 2 3, condition is napačno

Torej, preučujemo drug proces, P2.

2. korak: Za proces P2:

Potreba<= available< p>

1, 2, 2<= 2 3, condition prav

Novo na voljo = na voljo + Dodelitev

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

Podobno preučujemo drug proces P3.

3. korak: Za proces P3:

P3 Potreba<= available< p>

6, 0, 0<= 2 5, 3, condition is napačno

Podobno preučujemo drug proces, P4.

4. korak: Za proces P4:

j e s t

P4 Potreba<= available< p>

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

Nov razpoložljiv vir = na voljo + dodelitev

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

Podobno preučujemo drug proces P5.

5. korak: Za proces P5:

P5 Potreba<= available< p>

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

Nov razpoložljiv vir = na voljo + dodelitev

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

Zdaj ponovno preučimo vsako vrsto zahteve za vir za procesa P1 in P3.

6. korak: Za proces P1:

P1 Potreba<= available< p>

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

Nov razpoložljiv vir = na voljo + dodelitev

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

Torej, preučujemo še en proces P2.

7. korak: Za proces P3:

P3 Potreba<= available< p>

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

Nov razpoložljiv vir = na voljo + dodelitev

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

Zato izvedemo bančnikov algoritem za iskanje varnega stanja in varnega zaporedja, kot so P2, P4, P5, P1 in P3.

leta. 3: Za odobritev zahteve (1, 0, 2) moramo najprej to preveriti Prošnja<= available< strong>, to je (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>


int v niz v Javi