Qual è l'algoritmo del banchiere?
L'algoritmo del banchiere è utilizzato principalmente nel sistema bancario per evitare il deadlock. Ti aiuta a identificare se un prestito sarà concesso o meno.
Questo algoritmo viene utilizzato per testare la simulazione sicura dell'allocazione per determinare l'importo massimo disponibile per tutte le risorse. Verifica inoltre tutte le attività possibili prima di determinare se l'allocazione debba essere continuata o meno.
Ad esempio, esiste un numero X di titolari di conti di una banca specifica e l'importo totale dei 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 + schema di reddito mensile + oro, ecc.) Che la banca ha.
Controlla anche che la differenza sia maggiore o meno G. Elabora il prestito auto solo quando la banca ha denaro sufficiente anche se tutti i titolari di conto ritirano il denaro G contemporaneamente.
In questo tutorial del sistema operativo imparerai:
- Qual è l'algoritmo del banchiere?
- Notazioni dell'algoritmo del banchiere
- Esempio di algoritmo di Banker
- Caratteristiche dell'algoritmo del banchiere
- Svantaggio dell'algoritmo di Banker
Notazioni dell'algoritmo del banchiere
Ecco un'importante notazione utilizzata nell'algoritmo di Banker:
- X: indica il numero totale di processi del sistema.
- Y: indica il numero totale di risorse presenti nel sistema.
A disposizione
[I: Y] indica quale risorsa è disponibile.
Max
[l: X, l: Y]: Espressione del numero massimo di risorse di tipo j o processo i
Allocazione
[l: X, l: Y]. Indica dove processo hai ricevuto una risorsa di tipo j
Bisogno
Esprimi quante più risorse possono essere allocate in futuro
Esempio di 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 a matrice sottostante.
Nome del processo | Pen drive | Stampante | Scanner | Disco rigido |
---|---|---|---|---|
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:
Allocato = (4, 2, 2, 3).
Creiamo anche una matrice per visualizzare il numero di ogni risorsa richiesta per tutti i processi. Questa matrice è chiamata Need = (3,0,2,2)
Nome del processo | Pen drive | Stampante | Scanner | Disco rigido |
---|---|---|---|---|
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 delle risorse
L'algoritmo di richiesta delle risorse consente di rappresentare il comportamento del sistema quando un processo specifico effettua una richiesta di risorse.
Comprendilo con i seguenti passaggi:
Passaggio 1) Quando un'istanza totale richiesta di tutte le risorse è inferiore al processo, passare al passaggio 2.
Passaggio 2) Quando un'istanza richiesta di ogni tipo di risorsa è inferiore rispetto alle risorse disponibili di ciascun tipo, verrà elaborata al passaggio successivo. In caso contrario, il processo richiede di attendere a causa della mancata disponibilità di risorse sufficienti.
Passaggio 3) La risorsa viene assegnata 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 presumere che le risorse siano state allocate. In modo che ci dovrebbero essere meno risorse disponibili dopo l'allocazione.
Caratteristiche dell'algoritmo del banchiere
Ecco le caratteristiche importanti dell'algoritmo del banchiere:
- Mantieni molte risorse che soddisfano i requisiti di almeno un cliente
- Ogni volta che un processo ottiene tutte le sue risorse, deve restituirle entro un periodo limitato.
- 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 il suo fabbisogno massimo durante l'elaborazione
- Consente a tutte le richieste di essere concesse in un tempo limitato, ma un anno è un periodo fisso per questo.
- Tutti i processi devono conoscere e dichiarare in anticipo il loro fabbisogno massimo di risorse.
Sommario:
- L'algoritmo del banchiere viene utilizzato principalmente nel sistema bancario per evitare il deadlock. Ti aiuta a identificare se un prestito sarà concesso o meno.
- Le notazioni utilizzate negli algoritmi del banchiere sono 1) Disponibile 2) Massimo 3) Allocazione 4) Necessario
- L'algoritmo di richiesta delle 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 del banchiere è che non consente al processo di modificare il suo fabbisogno massimo durante l'elaborazione.