37
Silberschatz, Galvin and Gagne 2002 8.1 Operating System Concepts Deadlock Deadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei deadlock Prevenire i deadlock Evitare i deadlock Rilevare i deadlock Ripristino da situazioni di deadlock Approccio combinato alla gestione dei deadlock Oggi c’è un traffico tremendo…

Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Embed Size (px)

Citation preview

Page 1: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.1Operating System Concepts

DeadlockDeadlock

Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei deadlock Prevenire i deadlock Evitare i deadlock Rilevare i deadlock Ripristino da situazioni di deadlock Approccio combinato alla gestione dei deadlock

Oggi c’è un traffico tremendo…

Page 2: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.2Operating System Concepts

Il problema del deadlockIl problema del deadlock

In un ambiente multiprogrammato più processi possono entrare in competizione per ottenere un numero finito di risorse.

DeadlockDeadlock — insieme di processi bloccati: ciascun processo “possiede” una risorsa ed attende di acquisire una risorsa allocata ad un altro processo dell’insieme.

Esempio 1Esempio 1 Nel sistema sono presenti 2 unità a nastri.Nel sistema sono presenti 2 unità a nastri. PP11 e e PP22 posseggono una unità a nastri ciascuno ed posseggono una unità a nastri ciascuno ed

entrambi richiedono anche la seconda.entrambi richiedono anche la seconda. EsempioEsempio 22

Semafori Semafori AA e e B B, inizializzati a 1:, inizializzati a 1:

PP00 PP11

wait(A);wait(A); wait(B);wait(B);wait(B);wait(B); wait(A);wait(A);

Page 3: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.3Operating System Concepts

Esempio: attraversamento di un ponteEsempio: attraversamento di un ponte

In ogni istante, sul ponte possono transitare autoveicoli solo in una direzione.

Ciascuna sezione del ponte può essere immaginata come una risorsa.

Se si verifica un deadlock, il recovery può essere effettuato se un’auto torna indietro (rilascia la risorsa ed esegue un rollback ).

In caso di deadlock, può essere necessario che più auto debbano tornare indietro.

È possibile si verifichi starvation (attesa indefinita).

Page 4: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.4Operating System Concepts

Esempio: leggi ferroviarie in KansasEsempio: leggi ferroviarie in Kansas

Testo della legge approvata dalla legislazione del Kansas (inizi XX secolo):

““Quando due treni convergono ad un incrocio, ambedueQuando due treni convergono ad un incrocio, ambedue

devono arrestarsi, e nessuno dei due può ripartire primadevono arrestarsi, e nessuno dei due può ripartire prima

che l’altro si sia mosso”.che l’altro si sia mosso”.

Page 5: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.5Operating System Concepts

Modello di sistemaModello di sistema

Tipi di risorse R1, R2, . . ., Rm

Cicli di CPU, spazio di memoria, file, dispositivi di I/OCicli di CPU, spazio di memoria, file, dispositivi di I/O

Ciascun tipo di risorsa Ri ha Wi istanze.

Il protocollo di accesso alle risorse da parte dei processi prevede… RichiestaRichiesta — se — se la richiesta non può essere soddisfatta la richiesta non può essere soddisfatta

immediatamente, causa diverso utilizzo della risorsa, il immediatamente, causa diverso utilizzo della risorsa, il processo richiedente deve attendere fino all’acquisizione processo richiedente deve attendere fino all’acquisizione della risorsa.della risorsa.

UtilizzoUtilizzo RilascioRilascio

Richiesta/rilascio realizzati con apposite system call: request/release devicerequest/release device, open/close fileopen/close file, allocate/free allocate/free memorymemory.

Page 6: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.6Operating System Concepts

Caratterizzazione dei deadlockCaratterizzazione dei deadlock

Mutua esclusioneMutua esclusione: esiste almeno una risorsa non condivisibile, cioè un solo processo alla volta può usare quella risorsa.

Possesso ed attesaPossesso ed attesa: un processo, che possiede almeno una risorsa, attende di acquisire ulteriori risorse possedute da altri processi.

Impossibilità di prelazioneImpossibilità di prelazione: una risorsa può essere rilasciata dal processo che la possiede solo volontariamente, al termine del suo compito.

Attesa circolareAttesa circolare: esiste un insieme {P0, P1, …, Pn } di processi in attesa, tali che P0 è in attesa di una risorsa che è posseduta da P1, P1 è in attesa di una risorsa posseduta da P2, …, Pn–1 è in attesa di una risorsa posseduta da Pn, e Pn è in attesa di una risorsa posseduta da P0.

Una situazione di deadlock può verificarsi solo se valgono simultaneamente le seguenti condizioni:

Page 7: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.7Operating System Concepts

Grafo di allocazione risorseGrafo di allocazione risorse

L’insieme V è partizionato in due sottoinsiemi: PP = { = {PP11, , PP22, …, , …, PPnn } è l’insieme costituito da tutti i processi } è l’insieme costituito da tutti i processi

del sistema.del sistema. RR = { = {RR11, , RR22, …, , …, RRmm } è l’insieme di tutti i tipi di risorse del } è l’insieme di tutti i tipi di risorse del

sistema.sistema.

Arco di richiestaArco di richiesta: Pi Rj

Arco di assegnazioneArco di assegnazione: Rj Pi

Un grafo è costituito da un insieme di vertici (o nodi) V variamente connessi per mezzo di un insieme di archi E.

Nel grafo di allocazione risorsegrafo di allocazione risorse:

Page 8: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.8Operating System Concepts

Grafo di allocazione risorseGrafo di allocazione risorse

Processo

Tipo di risorsa con 4 istanze

Pi richiede un’istanza di Rj

Pi possiede un’istanza di Rj

Pi

Pi

Rj

Rj

Arco di assegnazione

Arco di richiesta

Page 9: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.9Operating System Concepts

Esempi diEsempi di grafo di allocazione risorsegrafo di allocazione risorseGrafo di allocazione risorse Grafo di allocazione risorse con

deadlock

Page 10: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.10Operating System Concepts

Grafo di allocazione risorseGrafo di allocazione risorse

Se il grafo non contiene cicli no ci sono deadlock.

Se il grafo contiene un ciclo Se vi è una sola istanza per Se vi è una sola istanza per

ogni tipo di risorsa, allora si ha ogni tipo di risorsa, allora si ha un deadlock.un deadlock.

Se si hanno più istanze per Se si hanno più istanze per tipo di risorsa, allora il tipo di risorsa, allora il deadlock è possibile (ma non deadlock è possibile (ma non certo).certo).

Il ciclo c’è, ma il deadlock no…

Page 11: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.11Operating System Concepts

Metodi per la gestione dei deadlockMetodi per la gestione dei deadlock

Assicurare che il sistema non entri mai in uno stato di deadlock. Prevenzione dei deadlockPrevenzione dei deadlock: evitare che si verifichino : evitare che si verifichino

contemporaneamente mutua esclusione, possesso e attesa, contemporaneamente mutua esclusione, possesso e attesa, impossibiltà di prelazione e attesa circolare impossibiltà di prelazione e attesa circolare basso utilizzo basso utilizzo risorse e throughput ridotto.risorse e throughput ridotto.

Evitare i deadlockEvitare i deadlock: evitare gli stati del sistema a partire : evitare gli stati del sistema a partire dai quali si può evolvere verso il deadlock.dai quali si può evolvere verso il deadlock.

Permettere al sistema di entrare in uno stato di deadlock, quindi ripristinare il sistema. Determinare la presenza di un deadlockDeterminare la presenza di un deadlock.. Ripristinare il sistema da un deadlockRipristinare il sistema da un deadlock..

Ignorare il problema e fingere che i deadlock non avvengano mai nel sistema; impiegato dalla maggior parte dei SO, incluso UNIX.

Page 12: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.12Operating System Concepts

Prevenire i deadlockPrevenire i deadlock

MutuaMutua esclusione esclusione — non è richiesta per risorse condivisibili; deve valere invece per risorse che non possono essere condivise.

Possesso e attesaPossesso e attesa — occorre garantire che, quando un processo richiede una risorsa, non ne possieda altre. Richiedere ad un processo di stabilire ed allocare tutte le Richiedere ad un processo di stabilire ed allocare tutte le

risorse necessarie prima che inizi l’esecuzione, o consentire risorse necessarie prima che inizi l’esecuzione, o consentire la richiesta di risorse solo quando il processo non ne la richiesta di risorse solo quando il processo non ne possiede alcuna.possiede alcuna.

Basso impiego delle risorse. È possibile cheBasso impiego delle risorse. È possibile che si verifichi si verifichi l’attesa indefinita.l’attesa indefinita.

Limitare le modalità di richiesta/accesso delle risorse.

Page 13: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.13Operating System Concepts

Prevenire i deadlockPrevenire i deadlock

Impossibilità di prelazioneImpossibilità di prelazione — Se un processo, che possiede alcune risorse, richiede Se un processo, che possiede alcune risorse, richiede

un’altra risorsa che non gli può essere allocata un’altra risorsa che non gli può essere allocata immmediatamente, allora rilascia tutte le risorse possedute.immmediatamente, allora rilascia tutte le risorse possedute.

Le risorse rilasciate (prelazionate al processo)Le risorse rilasciate (prelazionate al processo) vengono vengono aggiunte alla lista delle risorse che aggiunte alla lista delle risorse che il processo sta il processo sta attendendo.attendendo.

Il processo viene avviato nuovamente solo quando può Il processo viene avviato nuovamente solo quando può ottenere sia le vecchie che le nuove risorse.ottenere sia le vecchie che le nuove risorse.

Attesa circolareAttesa circolare — si impone un ordinamento totale su tutti i tipi di risorsa e si pretende che ciascun processo richieda le risorse in ordine crescente.

Page 14: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.14Operating System Concepts

Evitare i deadlockEvitare i deadlock

Il modello più semplice e utile richiede che ciascun processo dichiari il numero massimo di risorse di ciascun tipo di cui può usufruire.

L’algoritmo di deadlock–avoidancedeadlock–avoidance esamina dinamicamente lo stato di allocazione delle risorse per assicurare che non si possa verificare mai una condizione di attesa circolare.

Lo stato di allocazione delle risorse è definito dal numero di risorse disponibili ed allocate, e dal massimo numero di richieste dei processi.

Presuppone che il sistema conosca a priori informazioni addizionali sulle richieste future dei processi.

Page 15: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.15Operating System Concepts

Stato sicuroStato sicuro

Quando un processo richiede una risorsa disponibile, il sistema deve decidere se l’allocazione immediata lasci il sistema in stato sicurostato sicuro.

Il sistema si trova in uno stato sicuro se esiste una sequenza sequenza sicurasicura di esecuzione di tutti i processi.

La sequenza <P1, P2, …, Pn > è sicura se, per ogni Pi, le risorse che Pi può ancora richiedere possono essergli allocate sfruttando le risorse disponibili + le risorse possedute da tutti i Pj, con j < i. Se le richieste di Se le richieste di PPi i non possono essere soddisfatte non possono essere soddisfatte

immediatamente, allora immediatamente, allora PPii può attendere finché può attendere finché PPjj ha terminato.ha terminato.

Quando Quando PPjj ha terminato, ha terminato, PPii può ottenere le può ottenere le risorse richieste, risorse richieste,

eseguire i suoi compiti, restituire le risorse allocate e terminare. eseguire i suoi compiti, restituire le risorse allocate e terminare. Quando Quando PPii termina, termina, PPii+1+1 può ottenere le risorse richieste, etc. può ottenere le risorse richieste, etc.

Page 16: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.16Operating System Concepts

Stato sicuroStato sicuro

Se un sistema è in stato sicuro non si evolve verso il deadlock.

Se un sistema è in stato non sicuro si può evolvere in deadlock.

In stato non sicuro, il SO non può impedire ai processi di richiedere risorse la cui allocazione porta al deadlock.

Deadlock–avoidanceDeadlock–avoidance garantisce che un sistema non entri mai in stato non sicuro.

Page 17: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.17Operating System Concepts

Algoritmo con grafo di allocazione risorseAlgoritmo con grafo di allocazione risorse

Un arco di reclamo arco di reclamo Pi Rj (rappresentato da una linea tratteggiata) indica che il processo Pi può richiedere la risorsa Rj.

Un arco di reclamo viene convertito in un arco di richiesta quando il processo Pi richiede effettivamente la risorsa Rj.

Quando una risorsa viene rilasciata da un processo, l’arco di assegnamento viene riconvertito in un arco di reclamo.

Le risorse devono venir reclamate a priori nel sistema. Prima che il processo Pi inizi l’esecuzione, tutti i suoi archi di reclamo devono essere già inseriti nel grafo di allocazione risorse.

Page 18: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.18Operating System Concepts

Grafo di allocazione risorseGrafo di allocazione risorse

Stato non sicuro in un grafo di allocazione risorse

Grafo di allocazione risorse per evitare i deadlock

Page 19: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.19Operating System Concepts

Algoritmo del banchiereAlgoritmo del banchiere

Permette di gestire istanze multiple di una risorsa (a differenza dell’algoritmo con grafo di allocazione risorse).

Ciascun processo deve dichiarare a priori il massimo impiego di risorse.

Quando un processo richiede una risorsa può non venir servito istantaneamente.

Quando ad un processo vengono allocate tutte le risorse deve restituirle in un tempo finito.

Page 20: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.20Operating System Concepts

Strutture dati per l’algoritmo del banchiereStrutture dati per l’algoritmo del banchiere

AvailableAvailable: Vettore di lunghezza m. Se Available[ j ] = k, ci sono k istanze disponibili del tipo di risorsa Rj .

MaxMax: matrice n x m. Se Max [ i,j ] = k, il processo Pi può richiedere al più k istanze del tipo di risorsa Rj .

AllocationAllocation: matrice n x m. Se Allocation[ i,j ] = k, a Pi sono attualmente allocate k istanze di Rj .

NeedNeed: matrice n x m. Se Need [ i,j ] = k, Pi può richiedere k ulteriori istanze di Rj per completare il proprio task.

NeedNeed [[ i,ji,j ] = ] = MaxMax [[ i,ji,j ] – ] – AllocationAllocation [[ i,ji,j ]]

Sia n = numero di processi, e m = numero di tipi di risorse.

Page 21: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.21Operating System Concepts

Algoritmo di verifica della sicurezzaAlgoritmo di verifica della sicurezza

1. Siano WorkWork e FinishFinish vettori di lunghezza m e n, rispettivamente. Si inizializzi:a)a) Work Work = = AvailableAvailable

b)b) FinishFinish[[ii ] =] = false false perper i i = = 1,2, …,1,2, …, nn

2. Si cerchi i tale che valgano contemporaneamente: a)a) FinishFinish[[ii ] = ] = falsefalse

b)b) NeedNeedii WorkWork

Se tale i non esiste, si esegua il passo 4.

3. WorkWork = = Work Work + + AllocationAllocationii

FinishFinish[[ii ] =] = true truesi torni al passo 2.

4. Se FinishFinish [ [ii ] == ] == truetrue per ogni i, il sistema è in stato sicuro.

Page 22: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.22Operating System Concepts

Algoritmo di richiesta delle risorse per il processo Algoritmo di richiesta delle risorse per il processo PPii

Sia RequestRequestii il vettore delle richieste per il processo Pi . Se Requesti [j ] = k, il processo Pi richiede k istanze del tipo di risorsa Rj .1. Se RequestRequestii NeedNeedii , si vada al passo 2. Altrimenti, si

riporti una condizione di errore, poiché il processo ha ecceduto il massimo numero di richieste.

2. Se RequestRequestii AvailableAvailable, si vada al passo 3. Altrimenti Pi deve attendere, poiché le risorse non sono disponibili.

3. Il sistema simula l’allocazione al processo Pi delle risorse richieste, modificando lo stato di allocazione delle risorse come segue:

AvailableAvailable = = Available –Available – RequestRequestii

AllocationAllocationii = = AllocationAllocationii + + RequestRequestii

NeedNeedii == Need Needii – – RequestRequestii

• Se lo stato è sicuro le risorse vengono definitivamente allocate a Pi .

• Se lo stato è non sicuro Pi deve attendere, e viene ripristinato il vecchio stato di allocazione delle risorse.

Page 23: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.23Operating System Concepts

Esempio di applicazione dell’algoritmo del banchiereEsempio di applicazione dell’algoritmo del banchiere

5 processi, da P0 a P4; 3 tipi di risorse: A (10 instanze), B (5 instanze), e C (7 instanze).

Istantanea al tempo T0:

Allocation Max Available

A B C A B C A B C

P0 0 1 0 7 5 3 3 3 2

P1 2 0 0 3 2 2

P2 3 0 2 9 0 2

P3 2 1 1 2 2 2

P4 0 0 2 4 3 3

Page 24: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.24Operating System Concepts

Esempio di applicazione dell’algoritmo del banchiereEsempio di applicazione dell’algoritmo del banchiere

Il contenuto della matrice Need è definito come Max – Allocation.

Need

A B C

P0 7 4 3

P1 1 2 2

P2 6 0 0

P3 0 1 1

P4 4 3 1

Il sistema è in stato sicuro poiché la sequenza

< P1, P3, P4, P2, P0 >

soddisfa i criteri di sicurezza.

Page 25: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.25Operating System Concepts

Esempio (cont.): P1 richiede (1,0,2)

Verificare che Requesti Available (cioè, (1,0,2) (3,3,2) true ).

Allocation Need Available

A B C A B C A B C

P0 0 1 0 7 4 3 2 3 0

P1 3 0 2 0 2 0

P2 3 0 1 6 0 0

P3 2 1 1 0 1 1

P4 0 0 2 4 3 1

L’esecuzione dell’algoritmo di sicurezza mostra che la sequenza <P1, P3, P4, P0, P2 >

soddisfa i requisiti di sicurezza. Può essere soddisfatta la richiesta di Può essere soddisfatta la richiesta di PP44 per (3,3,0) ? per (3,3,0) ?

Può essere soddisfatta la richiesta di Può essere soddisfatta la richiesta di PP44 per (0,2,0) ? per (0,2,0) ?

Page 26: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.26Operating System Concepts

Rilevamento del deadlockRilevamento del deadlock

Si permette al sistema di entrare in uno stato di deadlock

Sono necessari: Algoritmo di rilevamento del deadlockAlgoritmo di rilevamento del deadlock Algoritmo di ripristino dal deadlockAlgoritmo di ripristino dal deadlock

Page 27: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.27Operating System Concepts

Istanza singola di ciascun tipo di risorsaIstanza singola di ciascun tipo di risorsa

Impiega un grafo di attesagrafo di attesa: I nodi rappresentano i processi.I nodi rappresentano i processi. L’arco L’arco PPii PPj j esiste se esiste se PPii è in attesa che è in attesa che P Pj j rilasci una rilasci una

risorsa che gli occorre.risorsa che gli occorre.

Periodicamente viene richiamato un algoritmo che verifica la presenza di cicli nel grafo.

Un algoritmo per rilevare cicli in un grafo richiede un numero di operazioni dell’ordine di n2, dove n è il numero di vertici del grafo.

Page 28: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.28Operating System Concepts

Grafo di allocazione risorse e grafo di attesaGrafo di allocazione risorse e grafo di attesa

Grafo di allocazione risorse Grafo di attesa corrispondente

Un arco Pi Pj

esiste nel grafo di attesa, se e solo se il corrispondente grafo di allocazione risorse contiene i due archi Pi Rq , Rq Pj , per una qualche risorsa Rq .

Page 29: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.29Operating System Concepts

Più istanze di ciascun tipo di risorsaPiù istanze di ciascun tipo di risorsa

AvailableAvailable: vettore di lunghezza m, indica il numero di risorse disponibili di ciascun tipo.

AllocationAllocation: matrice n x m, definisce il numero di risorse di ciascun tipo attualmente allocate a ciascun processo.

RequestRequest: matrice n x m, indica la richiesta corrente di ciascun processo. Se Request [i,j ] = k, il processo Pi richiede k istanze supplementari della risorsa Rj .

Page 30: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.30Operating System Concepts

Algoritmo di rilevamentoAlgoritmo di rilevamento

1. Siano WorkWork e FinishFinish due vettori di lunghezza m e n, rispettivamente. Inizialmente si ponga:a)a) WorkWork = = Available Available

b)b) Per Per ii = = 11,,22, …,, …, n n, se , se AllocationAllocationii 00, , FinishFinish[[ ii ] = ] = falsefalse;;

altrimenti, altrimenti, FinishFinish[[ ii ] = ] = truetrue

2. Si trovi un indice i tale che valgano entrambe le condizioni:a)a) FinishFinish[[ ii ] = ] = falsefalse

b)b) RequestRequestii WorkWork

Se tale i non esiste si vada al passo 4.

Page 31: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.31Operating System Concepts

Algoritmo di rilevamentoAlgoritmo di rilevamento

3. WorkWork = = WorkWork + + AllocationAllocationii

FinishFinish[[ii] = ] = truetruesi vada al passo 2.

4. Se FinishFinish[[ ii ] == ] == falsefalse, per qualche i, 1 i n, il sistema è in uno stato di deadlock. Inoltre, se FinishFinish[[ ii ] == ] == falsefalse, Pi è in deadlock.

L’algoritmo richiede un numero di operazioni dell’ordine di (m x n

2 ) per determinare se il sistema è in uno stato di

deadlock.

Page 32: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.32Operating System Concepts

Esempio di applicazione dell’algoritmo di rilevamentoEsempio di applicazione dell’algoritmo di rilevamento

Cinque processi, da P0 a P4; tre tipi di risorse: A (7 instanze), B (2 instanze), e C (6 instanze).

Istantanea al tempo T0:Allocation Request Available

A B C A B C A B C

P0 0 1 0 0 0 0 0 0 0

P1 2 0 0 2 0 2

P2 3 0 3 0 0 0

P3 2 1 1 1 0 0

P4 0 0 2 0 0 2

La sequenza

<P0, P2, P3, P1, P4 > conduce a Finish[ i ] = true per tutti gli i.

Page 33: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.33Operating System Concepts

Esempio di applicazione dell’algoritmo di rilevamentoEsempio di applicazione dell’algoritmo di rilevamento

P2 richiede un’istanza supplementare della risorsa C.Request

A B C

P0 0 0 0

P1 2 0 2

P2 0 0 1

P3 1 0 0

P4 0 0 2 Stato del sistema?

Può reclamare le risorse possedute dal processo Può reclamare le risorse possedute dal processo PP00, ma il , ma il numero di risorse disponibili non è sufficiente a soddisfare numero di risorse disponibili non è sufficiente a soddisfare gli altri processi gli altri processi deadlock: processi deadlock: processi PP11, , PP22, , PP33, e , e PP44..

Page 34: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.34Operating System Concepts

Impiego dell’algoritmo di rilevamentoImpiego dell’algoritmo di rilevamento

Quando e quanto spesso richiamare l’algoritmo di rilevamento dipende da: Frequenza (presunta) con la quale si verificano i deadlock;Frequenza (presunta) con la quale si verificano i deadlock; Numero di processi che vengono eventualmente influenzati Numero di processi che vengono eventualmente influenzati

dal deadlock (e sui quali deve essere effettuato un dal deadlock (e sui quali deve essere effettuato un rollbackrollback ):): Almeno un processo per ciascun ciclo.Almeno un processo per ciascun ciclo.

Se l’algoritmo viene richiamato in momenti arbitrari, possono essere presenti molti cicli nel grafo delle risorse non si può stabilire quale dei processi coinvolti nel ciclo abbia “causato” il deadlock.

Alternativamente, l’algoritmo può essere richiamato ogni volta che una richiesta non può essere soddisfatta immediatamente o quando l’utilizzo della CPU scende al di sotto del 40%.

Page 35: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.35Operating System Concepts

Ripristino dal deadlock: Terminazione di processiRipristino dal deadlock: Terminazione di processi

Terminazione in abort di tutti i processi in deadlock. Terminazione in abort di un processo alla volta fino

all’eliminazione del ciclo di deadlock. In quale ordine si decide di terminare i processi? I fattori

significativi sono: La priorità del processo.La priorità del processo. Il tempo di computazione trascorso e il tempo ancora Il tempo di computazione trascorso e il tempo ancora

necessario al completamento del processo.necessario al completamento del processo. Quantità e tipo di risorse impiegate.Quantità e tipo di risorse impiegate. Risorse ulteriori necessarie al processo per terminare Risorse ulteriori necessarie al processo per terminare il il

proprio compito.proprio compito. Numero di processi che devono essere terminati. Numero di processi che devono essere terminati. Tipo di processo: interattivo o batch.Tipo di processo: interattivo o batch.

Page 36: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.36Operating System Concepts

Ripristino dal deadlock: Prelazione di risorseRipristino dal deadlock: Prelazione di risorse

Selezione di una vittima Selezione di una vittima — È necessario stabilire l’ordine di prelazione per minimizzare i costi.

RollbackRollback — Un processo a cui sia stata prelazionata una risorsa deve ritornare ad uno stato sicuro, da cui ripartire.

StarvationStarvation — Alcuni processi possono essere sempre selezionati come vittime della prelazione: includere il numero di rollback nel fattore di costo.

Page 37: Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei

Silberschatz, Galvin and Gagne 20028.37Operating System Concepts

Approccio combinato alla gestione del deadlockApproccio combinato alla gestione del deadlock

Si combinano i tre approcci di base: prevenzioneprevenzione evitare i deadlockevitare i deadlock rilevamentorilevamento

permettendo l’uso dell’approccio ottimale per ciascuna risorsa del sistema.

Si suddividono le risorse in classi gerarchicamente ordinate.

Si impiegano le tecniche più appropriate per gestire i deadlock in ciascuna classe.