Algoritmul bancherului în Operating System [Exemplu]
⚡ Rezumat inteligent
Algoritmul Banker este o metodă de evitare a blocajelor care testează dacă alocarea resurselor menține sistemul într-o stare sigură. Numit după sistemul bancar, acesta acceptă o solicitare numai dacă rămân suficiente resurse pentru a satisface fiecare proces.

Ce este algoritmul lui Banker?
Algoritmul bancherului este utilizat în principal în sistemul bancar pentru a evita impas. 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 cont la o anumită bancă, iar suma totală de bani din conturile lor este G.
Când banca procesează un credit auto, sistemul software subiacenttracreprezintă suma creditului acordat pentru achiziționarea unei mașini din suma totală de bani (G + Depozit fix + Schemă de venit lunar + Aur etc.) pe care o are banca.
Acordă creditul auto doar dacă banii rămași depășesc în continuare G, astfel încât toți titularii de cont pot retrage G oricând.
Notații ale algoritmului bancherului
Iată câteva notații importante utilizate în algoritmul bancherului:
- X: Indică numărul total de procese din sistem.
- Y: Indică numărul total de resurse prezente în sistem.
Disponibil
[1:Y] indică câte instanțe ale fiecărui tip de resursă sunt disponibile.
max
[1:X, 1:Y]: Exprimă numărul maxim de resurse de tip j pe care procesul i le poate solicita.
Alocare
[1:X, 1:Y]: Indică resursele de tip j alocate în prezent procesului i.
Nevoie
Exprimă câte resurse mai sunt necesare pentru fiecare tip de proces pentru a-și finaliza sarcina.
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 a resurselor 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 numărul total de instanțe solicitate ale tuturor resurselor este mai mic decât numărul procesului, treceți la pasul 2.
Pas 2) Când instanțele solicitate ale fiecărui tip de resursă sunt mai mici în comparație cu resursele disponibile pentru fiecare tip, procesul va fi procesat la pasul următor. În caz contrar, procesul trebuie să aștepte 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 ultim pas este efectuat deoarece sistemul trebuie să presupună că resursele au fost alocate, astfel încât să existe mai puține resurse disponibile după alocare.
Caracteristicile algoritmului lui Banker
Iată caracteristicile importante ale algoritmului bancherului:
- Păstrează 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ă, este posibil să fie nevoie să aștepte.
- Sistemul are un număr limitat de resurse.
- Oferă o funcție avansată pentru alocarea maximă a resurselor.
Dezavantajul algoritmului lui Banker
Iată dezavantajele/dezavantajele utilizării algoritmului bancherului:
- Nu permite procesului să își modifice nevoia maximă în timpul procesării.
- Permite ca toate cererile să fie aprobate într-un 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.
