logo

Bankarski algoritam u operativnom sustavu (OS)

To je algoritam bankara koji se koristi izbjeći zastoj i dodijeliti resurse sigurno za svaki proces u računalnom sustavu. ' S-stanje' ispituje sve moguće testove ili aktivnosti prije nego što odluči treba li dopustiti dodjelu svakom procesu. Također pomaže operativnom sustavu da uspješno dijeli resurse između svih procesa. Bankarski algoritam nazvan je jer provjerava treba li osobi sankcionirati iznos kredita ili ne kako bi pomogao bankovnom sustavu da sigurno simulira raspodjelu resursa. U ovom odjeljku naučit ćemo Bankarski algoritam detaljno. Također, rješavat ćemo probleme na temelju Bankarski algoritam . Da bismo razumjeli bankarov algoritam, prvo ćemo vidjeti njegov pravi primjer.

Pretpostavimo da je broj vlasnika računa u određenoj banci 'n', a ukupni novac u banci je 'T'. Ako vlasnik računa podnese zahtjev za kredit; prvo, banka oduzima iznos kredita od cjelokupne gotovine, a zatim procjenjuje da je razlika u gotovini veća od T da bi odobrila iznos kredita. Ovi se koraci poduzimaju jer ako druga osoba podnese zahtjev za kredit ili podigne određeni iznos iz banke, to pomaže banci da upravlja i upravlja svim stvarima bez ikakvih ograničenja u funkcionalnosti bankarskog sustava.

Slično, radi u an operacijski sustav . Kada se kreira novi proces u računalnom sustavu, proces mora operativnom sustavu pružiti sve vrste informacija poput nadolazećih procesa, zahtjeva za njihovim resursima, njihovog brojanja i kašnjenja. Na temelju tih kriterija operativni sustav odlučuje koji procesni niz treba izvršiti ili pričekati kako ne bi došlo do zastoja u sustavu. Stoga je također poznat kao algoritam za izbjegavanje zastoja ili otkrivanje zastoja u operativnom sustavu.

Prednosti

Slijede bitne karakteristike Bankarovog algoritma:

  1. Sadrži različite resurse koji zadovoljavaju zahtjeve svakog procesa.
  2. Svaki proces trebao bi operativnom sustavu pružiti informacije o nadolazećim zahtjevima za resursima, broju resursa i koliko će dugo resursi biti zadržani.
  3. Pomaže operativnom sustavu u upravljanju i kontroli zahtjeva procesa za svaku vrstu resursa u računalnom sustavu.
  4. Algoritam ima atribut Max resource koji predstavlja naznaku da svaki proces može držati maksimalan broj resursa u sustavu.

Nedostaci

  1. Zahtijeva fiksni broj procesa, a nikakvi dodatni procesi ne mogu se pokrenuti u sustavu dok se proces izvršava.
  2. Algoritam više ne dopušta procesima razmjenu njegovih maksimalnih potreba tijekom obrade njegovih zadataka.
  3. Svaki proces mora unaprijed znati i navesti svoje maksimalne zahtjeve za resursima za sustav.
  4. Broj zahtjeva za resurse može se odobriti u određenom vremenu, ali rok za dodjelu resursa je jedna godina.

Kada radi s algoritmom bankara, on zahtijeva da zna tri stvari:

  1. Koliko svaki proces može zahtijevati za svaki resurs u sustavu. Označava se sa [ MAKS ] zahtjev.
  2. Koliko svaki proces trenutno drži svaki resurs u sustavu. Označava se sa [ DODIJELJENO ] resurs.
  3. Predstavlja broj svakog trenutno dostupnog resursa u sustavu. Označava se sa [ DOSTUPNO ] resurs.

Slijede važni pojmovi struktura podataka koji se primjenjuju u algoritmu bankara kako slijedi:

Pretpostavimo da je n broj procesa, a m broj svake vrste resursa koji se koristi u računalnom sustavu.

    Dostupno: To je polje duljine 'm' koje definira svaku vrstu resursa dostupnog u sustavu. Kada je Available[j] = K, znači da je 'K' instanci Resursa tipa R[j] dostupno u sustavu.Max:To je [n x m] matrica koja pokazuje da svaki proces P[i] može pohraniti maksimalni broj resursa R[j] (svaka vrsta) u sustavu.Dodjela:To je matrica od m x n redova koja označava vrstu resursa koji su trenutno dodijeljeni svakom procesu u sustavu. Kada je Dodjela [i, j] = K, to znači da je procesu P[i] trenutno dodijeljeno K instanci Resursa tipa R[j] u sustavu.Potreba:To je M x N matrični niz koji predstavlja broj preostalih resursa za svaki proces. Kada je Potreba[i] [j] = k, tada proces P[i] može zahtijevati još K instanci tipa resursa Rj da dovrši dodijeljeni posao.
    Nedd[i][j] = Max[i][j] - Dodjela[i][j].Završi: To je vektor reda m . Uključuje Booleovu vrijednost (true/false) koja pokazuje je li proces dodijeljen traženim resursima i svi resursi su oslobođeni nakon završetka zadatka.

Bankarski algoritam kombinacija je sigurnosnog algoritma i algoritma zahtjeva za resursima za kontrolu procesa i izbjegavanje zastoja u sustavu:

Sigurnosni algoritam

To je sigurnosni algoritam koji se koristi za provjeru je li sustav u sigurnom stanju ili slijedi li siguran niz u algoritmu bankara:

java jednako

1. Postoje dva vektora Wok i Završi duljine m i n u sigurnosnom algoritmu.

Inicijaliziraj: Posao = Dostupan
Završi[i] = lažno; za I = 0, 1, 2, 3, 4… n - 1.

2. Provjerite status dostupnosti za svaku vrstu resursa [i], kao što su:

Trebam[i]<= work
Finish[i] == false
Ako i ne postoji, idite na korak 4.

3. Posao = Posao +Dodjela(i) // za dobivanje nove alokacije resursa

Završi[i] = istina

Idite na korak 2 da provjerite status dostupnosti resursa za sljedeći proces.

4. If Finish[i] == true; to znači da je sustav siguran za sve procese.

Algoritam zahtjeva za resurs

Algoritam zahtjeva za resurs provjerava kako će se sustav ponašati kada proces napravi svaku vrstu zahtjeva za resurs u sustavu kao matricu zahtjeva.

Kreirajmo polje zahtjeva za resurs R[i] za svaki proces P[i]. Ako Zahtjev za resursja[j] jednako 'K', što znači da proces P[i] zahtijeva 'k' instanci Resursa tipa R[j] u sustavu.

1. Kada se broj traženi resursi svake vrste manji je od Potreba resursa, prijeđite na korak 2 i ako uvjet ne uspije, što znači da proces P[i] premašuje svoj maksimalni zahtjev za resurs. Kao što izraz sugerira:

Ako zahtjev(i)<= need
Idite na korak 2;

2. A kada je broj traženih resursa svake vrste manji od raspoloživog resursa za svaki proces, idite na korak (3). Kao što izraz sugerira:

Ako zahtjev(i)<= available
Inače proces P[i] mora čekati resurs jer nije dostupan za korištenje.

3. Kada je traženi resurs dodijeljen procesu promjenom stanja:

java prekidač int

Dostupan = Dostupan - Zahtjev
Dodjela(i) = Dodjela(i) + Zahtjev (i)
Potrebaja= Potrebaja- Zahtjevja

Kada je stanje raspodjele resursa sigurno, njegovi resursi se dodjeljuju procesu P(i). A ako novo stanje nije sigurno, Proces P (i) mora čekati svaki tip Zahtjeva R(i) i vratiti staro stanje raspodjele resursa.

Primjer: Razmotrimo sustav koji sadrži pet procesa P1, P2, P3, P4, P5 i tri tipa resursa A, B i C. Slijede tipovi resursa: A ima 10, B ima 5 i tip resursa C ima 7 instanci.

Postupak Dodjela
A B C
Maks
A B C
Dostupno
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

Odgovorite na sljedeća pitanja koristeći bankarov algoritam:

  1. Koja je referenca matrice potreba?
  2. Utvrdite je li sustav siguran ili ne.
  3. Što će se dogoditi ako zahtjev za resurs (1, 0, 0) za proces P1 može sustav odmah prihvatiti ovaj zahtjev?

Godine. 2: Kontekst matrice potreba je sljedeći:

Potreba [i] = Max [i] - Dodjela [i]
Potreba za P1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Potreba za P2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Potreba za P3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Potreba za P4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Potreba za P5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1

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

Stoga smo stvorili kontekst matrice potreba.

Ans. 2: Primijenite bankarov algoritam:

Dostupni resursi za A, B i C su 3, 3 i 2.

Sada provjeravamo je li svaki tip zahtjeva za resurs dostupan za svaki proces.

Korak 1: Za proces P1:

Potreba<= available< p>

7, 4, 3<= 2 3, condition is lažan .

Dakle, ispitujemo drugi proces, P2.

Korak 2: Za proces P2:

Potreba<= available< p>

1, 2, 2<= 2 3, condition pravi

Novo dostupno = dostupno + dodjela

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

Slično, ispitujemo još jedan proces P3.

Korak 3: Za proces P3:

počinje s javom

P3 Potreba<= available< p>

6, 0, 0<= 2 5, 3, condition is lažan .

Slično, ispitujemo još jedan proces, P4.

Korak 4: Za proces P4:

P4 Potreba<= available< p>

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

Novi raspoloživi resurs = Dostupno + Dodjela

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

Slično, ispitujemo još jedan proces P5.

Korak 5: Za proces P5:

P5 Potreba<= available< p>

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

Novi raspoloživi resurs = Dostupno + Dodjela

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

Sada ponovno ispitujemo svaku vrstu zahtjeva za resurs za procese P1 i P3.

Korak 6: Za proces P1:

np gdje

P1 Potreba<= available< p>

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

Novi raspoloživi resurs = dostupan + dodjela

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

Dakle, ispitujemo još jedan proces P2.

Korak 7: Za proces P3:

P3 Potreba<= available< p>

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

Novi raspoloživi resurs = dostupan + dodjela

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

Stoga izvršavamo bankarov algoritam za pronalaženje sigurnog stanja i sigurnog niza kao što su P2, P4, P5, P1 i P3.

Godine. 3: Za odobravanje Zahtjeva (1, 0, 2), prvo to moramo provjeriti Zahtjev<= available< strong>, odnosno (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>