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:
- Sadrži različite resurse koji zadovoljavaju zahtjeve svakog procesa.
- 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.
- Pomaže operativnom sustavu u upravljanju i kontroli zahtjeva procesa za svaku vrstu resursa u računalnom sustavu.
- Algoritam ima atribut Max resource koji predstavlja naznaku da svaki proces može držati maksimalan broj resursa u sustavu.
Nedostaci
- Zahtijeva fiksni broj procesa, a nikakvi dodatni procesi ne mogu se pokrenuti u sustavu dok se proces izvršava.
- Algoritam više ne dopušta procesima razmjenu njegovih maksimalnih potreba tijekom obrade njegovih zadataka.
- Svaki proces mora unaprijed znati i navesti svoje maksimalne zahtjeve za resursima za sustav.
- 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:
- Koliko svaki proces može zahtijevati za svaki resurs u sustavu. Označava se sa [ MAKS ] zahtjev.
- Koliko svaki proces trenutno drži svaki resurs u sustavu. Označava se sa [ DODIJELJENO ] resurs.
- 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.
Nedd[i][j] = Max[i][j] - Dodjela[i][j].
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:
- Koja je referenca matrice potreba?
- Utvrdite je li sustav siguran ili ne.
- Š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>
=>=>