Algoritmul bancherului în Operating System [Exemplu]
Ce este algoritmul lui Banker?
Algoritmul bancherului este utilizat în principal în sistemul bancar pentru a evita blocajul. Vă ajută să identificați dacă va fi acordat sau nu un împrumut.
Acest algoritm este utilizat pentru a testa simularea în siguranță a alocării pentru determinarea sumei maxime disponibile pentru toate resursele. De asemenea, verifică toate activitățile posibile înainte de a determina dacă alocarea trebuie continuată sau nu.
De exemplu, există un număr X de titulari de conturi ai unei anumite bănci, iar suma totală de bani a conturilor lor este G.
Atunci când banca procesează un împrumut auto, sistemul software scade suma împrumutului acordat pentru achiziționarea unei mașini din totalul banilor (G+ Depozit fix + Schema Venituri Lunare + Aur etc.) pe care banca îi are.
De asemenea, verifică dacă diferența este mai mare sau nu G. Procesează împrumutul auto doar atunci când banca are suficienți bani chiar dacă toți titularii de cont retrag banii G simultan.
Notații ale algoritmului bancherului
Iată o notație importantă folosită în algoritmul lui Banker:
- X: Indică numărul total de procese ale sistemului.
- Y: Indică numărul total de resurse prezente în sistem.
Disponibil
[I: Y] indică ce resursă este disponibilă.
max
[l:X,l: Y]: Exprimarea numărului maxim de resurse de tip j sau proces i
Alocare
[l:X,l:Y]. Indicați unde proces ați primit o resursă de tip j
Nevoie
Exprimați câte resurse mai pot fi alocate în viitor
Exemplu de algoritm al lui Banker
Să presupunem că avem următoarele resurse:
- 5 Pen drive
- 2 imprimante
- 4 scanere
- 3 hard disk-uri
Aici, am creat un vector care reprezintă resursele totale: Disponibil = (5, 2, 4, 3).
Să presupunem că există patru procese. Resursele disponibile sunt deja alocate conform tabelului matrice de mai jos.
Numele procesului | Pen Drive-uri | Imprimanta | Scanner | Hard disk |
---|---|---|---|---|
P | 2 | 0 | 1 | 1 |
Q | 0 | 1 | 0 | 0 |
R | 1 | 0 | 1 | 1 |
S | 1 | 1 | 0 | 1 |
Total | 4 | 2 | 2 | 3 |
Aici, resursele alocate reprezintă totalul acestor coloane:
Alocat = (4, 2, 2, 3).
De asemenea, creăm o matrice pentru a afișa numărul fiecărei resurse necesare pentru toate procesele. Această matrice se numește Nevoie=(3,0,2,2)
Numele procesului | Pen Drive-uri | Imprimanta | Scanner | Hard disk |
---|---|---|---|---|
P | 1 | 1 | 0 | 0 |
Q | 0 | 1 | 1 | 2 |
R | 2 | 1 | 0 | 0 |
S | 0 | 0 | 1 | 0 |
Vectorul disponibil va fi:
Disponibil=Disponibil - Alocat
= (5, 2, 4, 3) -(4, 2, 2, 3)
=(1, 0, 2, 0)
Algoritmul de solicitare a resurselor
Algoritmul de solicitare de resurse vă permite să reprezentați comportamentul sistemului atunci când un anumit proces face o solicitare de resurse.
Să înțelegem acest lucru prin următorii pași:
Pas 1) Când o instanță totală solicitată a tuturor resurselor este mai mică decât procesul, treceți la pasul 2.
Pas 2) Când o instanță solicitată pentru fiecare tip de resursă este mai mică în comparație cu resursele disponibile pentru fiecare tip, aceasta va fi procesată la pasul următor. În caz contrar, procesul necesită așteptarea din cauza indisponibilității resurselor suficiente.
Pas 3) Resursa este alocată așa cum se arată în pseudocodul de mai jos.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Acest pas final este efectuat deoarece sistemul trebuie să presupună că au fost alocate resurse. Astfel încât să fie mai puține resurse disponibile după alocare.
Caracteristicile algoritmului lui Banker
Iată caracteristicile importante ale algoritmului bancherului:
- Păstrați multe resurse care satisfac cerințele a cel puțin unui client
- Ori de câte ori un proces își primește toate resursele, trebuie să le returneze într-o perioadă limitată.
- Când un proces solicită o resursă, trebuie să aștepte
- Sistemul are un număr limitat de resurse
- Funcție avansată pentru alocarea maximă a resurselor
Dezavantajul algoritmului lui Banker
Iată dezavantajele/dezavantajele utilizării algoritmului bancherului
- Nu permite procesului să-și schimbe necesarul maxim în timpul procesării
- Acesta permite ca toate cererile să fie acordate în timp limitat, dar un an este o perioadă fixă pentru asta.
- Toate procesele trebuie să cunoască și să își precizeze nevoile maxime de resurse în prealabil.
Rezumat
- Algoritmul lui Banker este utilizat în principal în sistemul bancar pentru a evita impas. Vă ajută să identificați dacă va fi acordat sau nu un împrumut.
- Notațiile utilizate în algoritmii bancherului sunt 1) Disponibil 2) Max 3) Alocare 4) Necesar
- Algoritmul de solicitare de resurse vă permite să reprezentați comportamentul sistemului atunci când un anumit proces face o solicitare de resurse.
- Algoritmul lui Banker păstrează multe resurse care satisfac cerințele a cel puțin unui client
- Cel mai mare dezavantaj al algoritmului bancherului este că nu permite procesului să-și schimbe nevoia maximă în timpul procesării.