Algoritmo del banchiere in Operasistema di controllo [Esempio]
Cos'è l'algoritmo del banchiere?
Algoritmo del banchiere è usato principalmente nel sistema bancario per evitare situazioni di stallo. Ti aiuta a capire se un prestito verrà concesso o meno.
Questo algoritmo viene utilizzato per testare la simulazione sicura dell'allocazione per determinare l'importo massimo disponibile per tutte le risorse. Controlla inoltre tutte le possibili attività prima di determinare se l'assegnazione debba essere continuata o meno.
Ad esempio, vi è un numero X di titolari di conti di una banca specifica e l'importo totale di denaro sui loro conti è G.
Quando la banca elabora un prestito auto, il sistema software sottrae l'importo del prestito concesso per l'acquisto di un'auto dal denaro totale (G+ Deposito fisso + Piano di reddito mensile + Oro, ecc.) di cui dispone la banca.
Controlla anche che la differenza sia maggiore o minore di G. Elabora il prestito auto solo quando la banca ha denaro sufficiente, anche se tutti i titolari del conto prelevano il denaro G contemporaneamente.
Notazioni sugli algoritmi del banchiere
Ecco una notazione importante utilizzata nell'algoritmo di Banker:
- X: indica il numero totale di processi del sistema.
- Y: indica il numero totale di risorse presenti nel sistema.
Disponibile
[I: Y] indica quale risorsa è disponibile.
Max
[l:X,l:Y]: Espressione del numero massimo di risorse di tipo j o processo i
assegnazione
[l:X,l:Y]. Indica da quale processo hai ricevuto una risorsa di tipo j
Bisogno
Esprimere quante risorse in più possono essere allocate in futuro
Esempio dell'algoritmo di Banker
Supponiamo di avere le seguenti risorse:
- 5 Pen drive
- 2 stampanti
- 4 Scanner
- 3 dischi rigidi
Qui abbiamo creato un vettore che rappresenta le risorse totali: Disponibile = (5, 2, 4, 3).
Supponiamo che ci siano quattro processi. Le risorse disponibili sono già allocate secondo la tabella matrice sottostante.
Nome processo | Pen drive | Stampante | Scanner | hard disk |
---|---|---|---|---|
P | 2 | 0 | 1 | 1 |
Q | 0 | 1 | 0 | 0 |
R | 1 | 0 | 1 | 1 |
S | 1 | 1 | 0 | 1 |
Totale | 4 | 2 | 2 | 3 |
Qui, le risorse allocate sono il totale di queste colonne:
Assegnato = (4, 2, 2, 3).
Creiamo anche una matrice per visualizzare il numero di ciascuna risorsa richiesta per tutti i processi. Questa matrice si chiama Bisogno=(3,0,2,2)
Nome processo | Pen drive | Stampante | Scanner | hard disk |
---|---|---|---|---|
P | 1 | 1 | 0 | 0 |
Q | 0 | 1 | 1 | 2 |
R | 2 | 1 | 0 | 0 |
S | 0 | 0 | 1 | 0 |
Il vettore disponibile sarà:
Disponibile=Disponibile-Assegnato
= (5, 2, 4, 3) -(4, 2, 2, 3)
=(1, 0, 2, 0)
Algoritmo di richiesta di risorse
L'algoritmo di richiesta di risorse consente di rappresentare il comportamento del sistema quando un processo specifico effettua una richiesta di risorse.
Per capirlo, seguite i seguenti passaggi:
Passo 1) Quando l'istanza totale richiesta di tutte le risorse è inferiore al processo, vai al passaggio 2.
Passo 2) Quando un'istanza richiesta di ogni tipo di risorsa è inferiore rispetto alle risorse disponibili di ogni tipo, verrà elaborata al passaggio successivo. In caso contrario, il processo richiede di attendere a causa della mancanza di risorse sufficienti.
Passo 3) La risorsa viene allocata come mostrato nello pseudocodice indicato di seguito.
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
Questo passaggio finale viene eseguito perché il sistema deve presupporre che le risorse siano state allocate. In modo che ci dovrebbero essere meno risorse disponibili dopo l'assegnazione.
Caratteristiche dell'algoritmo del banchiere
Ecco le caratteristiche importanti dell'algoritmo del banchiere:
- Conservare molte risorse che soddisfino i requisiti di almeno un cliente
- Ogni volta che un processo ottiene tutte le sue risorse, deve restituirle in un periodo ristretto.
- Quando un processo richiede una risorsa, deve attendere
- Il sistema ha un numero limitato di risorse
- Funzionalità avanzata per l'allocazione massima delle risorse
Svantaggio dell'algoritmo di Banker
Ecco i contro/svantaggi dell'utilizzo dell'algoritmo del banchiere
- Non consente al processo di modificare la sua necessità massima durante l'elaborazione
- Permette di accogliere tutte le richieste in un tempo limitato, ma per questo è un periodo fisso di un anno.
- Tutti i processi devono conoscere e dichiarare in anticipo il proprio fabbisogno massimo di risorse.
Sommario
- L'algoritmo del banchiere viene utilizzato principalmente nel sistema bancario per evitare punto morto. Ti aiuta a identificare se un prestito verrà concesso o meno.
- Le notazioni utilizzate negli algoritmi bancari sono 1) Disponibile 2) Max 3) Allocazione 4) Necessario
- L'algoritmo di richiesta di risorse consente di rappresentare il comportamento del sistema quando un processo specifico effettua una richiesta di risorse.
- L'algoritmo del banchiere conserva molte risorse che soddisfano i requisiti di almeno un cliente
- Il più grande svantaggio dell'algoritmo bancario è che non consente al processo di modificare la sua necessità massima durante l'elaborazione.