La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Silberschatz, Galvin and Gagne 2002 8.1 Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei."— Transcript della presentazione:

1 Silberschatz, Galvin and Gagne Operating System ConceptsDeadlock 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…

2 Silberschatz, Galvin and Gagne Operating System Concepts Il problema del deadlock In un ambiente multiprogrammato più processi possono entrare in competizione per ottenere un numero finito di risorse. Deadlock Deadlock insieme di processi bloccati: ciascun processo possiede una risorsa ed attende di acquisire una risorsa allocata ad un altro processo dellinsieme. Esempio 1 Esempio 1 Nel sistema sono presenti 2 unità a nastri. Nel sistema sono presenti 2 unità a nastri. P 1 e P 2 posseggono una unità a nastri ciascuno ed entrambi richiedono anche la seconda. P 1 e P 2 posseggono una unità a nastri ciascuno ed entrambi richiedono anche la seconda. Esempio2 Esempio 2 Semafori A e B, inizializzati a 1: Semafori A e B, inizializzati a 1: P 0 P 1 P 0 P 1 wait(A);wait(B); wait(B);wait(A);

3 Silberschatz, Galvin and Gagne Operating System Concepts Esempio: 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 unauto 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).

4 Silberschatz, Galvin and Gagne Operating System Concepts Esempio: leggi ferroviarie in Kansas Testo della legge approvata dalla legislazione del Kansas (inizi XX secolo): Quando due treni convergono ad un incrocio, ambedue devono arrestarsi, e nessuno dei due può ripartire prima devono arrestarsi, e nessuno dei due può ripartire prima che laltro si sia mosso. che laltro si sia mosso.

5 Silberschatz, Galvin and Gagne Operating System Concepts Modello di sistema Tipi di risorse R 1, R 2,..., R m Cicli di CPU, spazio di memoria, file, dispositivi di I/O Ciascun tipo di risorsa R i ha W i istanze. Il protocollo di accesso alle risorse da parte dei processi prevede… Richiesta se la richiesta non può essere soddisfatta immediatamente, causa diverso utilizzo della risorsa, il processo richiedente deve attendere fino allacquisizione della risorsa. Richiesta se la richiesta non può essere soddisfatta immediatamente, causa diverso utilizzo della risorsa, il processo richiedente deve attendere fino allacquisizione della risorsa. Utilizzo Utilizzo Rilascio Rilascio request/release deviceopen/close fileallocate/free memory Richiesta/rilascio realizzati con apposite system call: request/release device, open/close file, allocate/free memory.

6 Silberschatz, Galvin and Gagne Operating System Concepts Caratterizzazione dei deadlock Mutua esclusione Mutua esclusione: esiste almeno una risorsa non condivisibile, cioè un solo processo alla volta può usare quella risorsa. Possesso ed attesa Possesso ed attesa: un processo, che possiede almeno una risorsa, attende di acquisire ulteriori risorse possedute da altri processi. Impossibilità di prelazione Impossibilità di prelazione: una risorsa può essere rilasciata dal processo che la possiede solo volontariamente, al termine del suo compito. Attesa circolare Attesa circolare: esiste un insieme {P 0, P 1, …, P n } di processi in attesa, tali che P 0 è in attesa di una risorsa che è posseduta da P 1, P 1 è in attesa di una risorsa posseduta da P 2, …, P n–1 è in attesa di una risorsa posseduta da P n, e P n è in attesa di una risorsa posseduta da P 0. Una situazione di deadlock può verificarsi solo se valgono simultaneamente le seguenti condizioni:

7 Silberschatz, Galvin and Gagne Operating System Concepts Grafo di allocazione risorse Linsieme V è partizionato in due sottoinsiemi: P = {P 1, P 2, …, P n } è linsieme costituito da tutti i processi del sistema. P = {P 1, P 2, …, P n } è linsieme costituito da tutti i processi del sistema. R = {R 1, R 2, …, R m } è linsieme di tutti i tipi di risorse del sistema. R = {R 1, R 2, …, R m } è linsieme di tutti i tipi di risorse del sistema. Arco di richiesta Arco di richiesta: P i R j Arco di assegnazione Arco di assegnazione: R j P i Un grafo è costituito da un insieme di vertici (o nodi) V variamente connessi per mezzo di un insieme di archi E. grafo di allocazione risorse Nel grafo di allocazione risorse:

8 Silberschatz, Galvin and Gagne Operating System Concepts Grafo di allocazione risorse Processo Tipo di risorsa con 4 istanze P i richiede unistanza di R j P i possiede unistanza di R j PiPi PiPi RjRj RjRj Arco di assegnazione Arco di richiesta

9 Silberschatz, Galvin and Gagne Operating System Concepts Esempi digrafo di allocazione risorse Esempi di grafo di allocazione risorse Grafo di allocazione risorse Grafo di allocazione risorse con deadlock

10 Silberschatz, Galvin and Gagne Operating System Concepts Grafo 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 ogni tipo di risorsa, allora si ha un deadlock. Se vi è una sola istanza per ogni tipo di risorsa, allora si ha un deadlock. Se si hanno più istanze per tipo di risorsa, allora il deadlock è possibile (ma non certo). Se si hanno più istanze per tipo di risorsa, allora il deadlock è possibile (ma non certo). Il ciclo cè, ma il deadlock no…

11 Silberschatz, Galvin and Gagne Operating System Concepts Metodi per la gestione dei deadlock Assicurare che il sistema non entri mai in uno stato di deadlock. Prevenzione dei deadlock: evitare che si verifichino contemporaneamente mutua esclusione, possesso e attesa, impossibiltà di prelazione e attesa circolare basso utilizzo risorse e throughput ridotto. Prevenzione dei deadlock: evitare che si verifichino contemporaneamente mutua esclusione, possesso e attesa, impossibiltà di prelazione e attesa circolare basso utilizzo risorse e throughput ridotto. Evitare i deadlock: evitare gli stati del sistema a partire dai quali si può evolvere verso il deadlock. Evitare i deadlock: evitare gli stati del sistema a partire 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 deadlock. Determinare la presenza di un deadlock. Ripristinare il sistema da un deadlock. Ripristinare 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.

12 Silberschatz, Galvin and Gagne Operating System Concepts Prevenire i deadlock Mutua esclusione Mutua esclusione non è richiesta per risorse condivisibili; deve valere invece per risorse che non possono essere condivise. Possesso e attesa Possesso 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 risorse necessarie prima che inizi lesecuzione, o consentire la richiesta di risorse solo quando il processo non ne possiede alcuna. Richiedere ad un processo di stabilire ed allocare tutte le risorse necessarie prima che inizi lesecuzione, o consentire la richiesta di risorse solo quando il processo non ne possiede alcuna. Basso impiego delle risorse. È possibile che si verifichi lattesa indefinita. Basso impiego delle risorse. È possibile che si verifichi lattesa indefinita. Limitare le modalità di richiesta/accesso delle risorse.

13 Silberschatz, Galvin and Gagne Operating System Concepts Prevenire i deadlock Impossibilità di prelazione Impossibilità di prelazione Se un processo, che possiede alcune risorse, richiede unaltra risorsa che non gli può essere allocata immmediatamente, allora rilascia tutte le risorse possedute. Se un processo, che possiede alcune risorse, richiede unaltra risorsa che non gli può essere allocata immmediatamente, allora rilascia tutte le risorse possedute. Le risorse rilasciate (prelazionate al processo) vengono aggiunte alla lista delle risorse che il processo sta attendendo. Le risorse rilasciate (prelazionate al processo) vengono aggiunte alla lista delle risorse che il processo sta attendendo. Il processo viene avviato nuovamente solo quando può ottenere sia le vecchie che le nuove risorse. Il processo viene avviato nuovamente solo quando può ottenere sia le vecchie che le nuove risorse. Attesa circolare Attesa circolare si impone un ordinamento totale su tutti i tipi di risorsa e si pretende che ciascun processo richieda le risorse in ordine crescente.

14 Silberschatz, Galvin and Gagne Operating System Concepts Evitare 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. deadlock–avoidance Lalgoritmo di deadlock–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.

15 Silberschatz, Galvin and Gagne Operating System Concepts Stato sicuro stato sicuro Quando un processo richiede una risorsa disponibile, il sistema deve decidere se lallocazione immediata lasci il sistema in stato sicuro. sequenza sicura Il sistema si trova in uno stato sicuro se esiste una sequenza sicura di esecuzione di tutti i processi. La sequenza è sicura se, per ogni P i, le risorse che P i può ancora richiedere possono essergli allocate sfruttando le risorse disponibili + le risorse possedute da tutti i P j, con j < i. Se le richieste di P i non possono essere soddisfatte immediatamente, allora P i può attendere finché P j ha terminato. Se le richieste di P i non possono essere soddisfatte immediatamente, allora P i può attendere finché P j ha terminato. Quando P j ha terminato, P i può ottenere le risorse richieste, eseguire i suoi compiti, restituire le risorse allocate e terminare. Quando P j ha terminato, P i può ottenere le risorse richieste, eseguire i suoi compiti, restituire le risorse allocate e terminare. Quando P i termina, P i+1 può ottenere le risorse richieste, etc. Quando P i termina, P i+1 può ottenere le risorse richieste, etc.

16 Silberschatz, Galvin and Gagne Operating System Concepts Stato 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–avoidance Deadlock–avoidance garantisce che un sistema non entri mai in stato non sicuro.

17 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo con grafo di allocazione risorse arco di reclamo Un arco di reclamo P i R j (rappresentato da una linea tratteggiata) indica che il processo P i può richiedere la risorsa R j. Un arco di reclamo viene convertito in un arco di richiesta quando il processo P i richiede effettivamente la risorsa R j. Quando una risorsa viene rilasciata da un processo, larco di assegnamento viene riconvertito in un arco di reclamo. Le risorse devono venir reclamate a priori nel sistema. Prima che il processo P i inizi lesecuzione, tutti i suoi archi di reclamo devono essere già inseriti nel grafo di allocazione risorse.

18 Silberschatz, Galvin and Gagne Operating System Concepts Grafo di allocazione risorse Stato non sicuro in un grafo di allocazione risorse Grafo di allocazione risorse per evitare i deadlock

19 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dellalgoritmo 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.

20 Silberschatz, Galvin and Gagne Operating System Concepts Strutture dati per lalgoritmo del banchiere Available Available: Vettore di lunghezza m. Se Available[ j ] = k, ci sono k istanze disponibili del tipo di risorsa R j. Max Max: matrice n x m. Se Max [ i,j ] = k, il processo P i può richiedere al più k istanze del tipo di risorsa R j. Allocation Allocation: matrice n x m. Se Allocation[ i,j ] = k, a P i sono attualmente allocate k istanze di R j. Need Need: matrice n x m. Se Need [ i,j ] = k, P i può richiedere k ulteriori istanze di R j per completare il proprio task. Need [ i,j ] = Max [ i,j ] – Allocation [ i,j ] Sia n = numero di processi, e m = numero di tipi di risorse.

21 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo di verifica della sicurezza WorkFinish 1. Siano Work e Finish vettori di lunghezza m e n, rispettivamente. Si inizializzi: a) Work = Available b) Finish[i ] = false per i = 1,2, …, n 2. Si cerchi i tale che valgano contemporaneamente: a) Finish[i ] = false b) Need i Work Se tale i non esiste, si esegua il passo 4. Work = Work + Allocation i Finish[i ] = true 3. Work = Work + Allocation i Finish[i ] = true si torni al passo 2. Finish [i ] == true 4. Se Finish [i ] == true per ogni i, il sistema è in stato sicuro.

22 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo di richiesta delle risorse per il processo P i Request i Sia Request i il vettore delle richieste per il processo P i. Se Request i [j ] = k, il processo P i richiede k istanze del tipo di risorsa R j. Request i Need i 1. Se Request i Need i, si vada al passo 2. Altrimenti, si riporti una condizione di errore, poiché il processo ha ecceduto il massimo numero di richieste. Request i Available 2. Se Request i Available, si vada al passo 3. Altrimenti P i deve attendere, poiché le risorse non sono disponibili. 3. Il sistema simula lallocazione al processo P i delle risorse richieste, modificando lo stato di allocazione delle risorse come segue: Available = Available – Request i Allocation i = Allocation i + Request i Need i = Need i – Request i Se lo stato è sicuro le risorse vengono definitivamente allocate a P i. Se lo stato è non sicuro P i deve attendere, e viene ripristinato il vecchio stato di allocazione delle risorse.

23 Silberschatz, Galvin and Gagne Operating System Concepts Esempio di applicazione dellalgoritmo del banchiere 5 processi, da P 0 a P 4 ; 3 tipi di risorse: A (10 instanze), B (5 instanze), e C (7 instanze). Istantanea al tempo T 0 : AllocationMaxAvailable A B CA B C A B C P P P P P

24 Silberschatz, Galvin and Gagne Operating System Concepts Esempio di applicazione dellalgoritmo del banchiere Il contenuto della matrice Need è definito come Max – Allocation. Need A B C P P P P P Il sistema è in stato sicuro poiché la sequenza soddisfa i criteri di sicurezza.

25 Silberschatz, Galvin and Gagne Operating System Concepts Esempio (cont.): P 1 richiede (1,0,2) Verificare che Request i Available (cioè, (1,0,2) (3,3,2) true ). AllocationNeedAvailable A B CA B CA B C P P P P P Lesecuzione dellalgoritmo di sicurezza mostra che la sequenza soddisfa i requisiti di sicurezza. Può essere soddisfatta la richiesta di P 4 per (3,3,0) ? Può essere soddisfatta la richiesta di P 4 per (3,3,0) ? Può essere soddisfatta la richiesta di P 4 per (0,2,0) ? Può essere soddisfatta la richiesta di P 4 per (0,2,0) ?

26 Silberschatz, Galvin and Gagne Operating System Concepts Rilevamento del deadlock Si permette al sistema di entrare in uno stato di deadlock Sono necessari: Algoritmo di rilevamento del deadlock Algoritmo di rilevamento del deadlock Algoritmo di ripristino dal deadlock Algoritmo di ripristino dal deadlock

27 Silberschatz, Galvin and Gagne Operating System Concepts Istanza singola di ciascun tipo di risorsa grafo di attesa Impiega un grafo di attesa: I nodi rappresentano i processi. I nodi rappresentano i processi. Larco P i P j esiste se P i è in attesa che P j rilasci una risorsa che gli occorre. Larco P i P j esiste se P i è in attesa che P j rilasci una 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 dellordine di n 2, dove n è il numero di vertici del grafo.

28 Silberschatz, Galvin and Gagne Operating System Concepts Grafo di allocazione risorse e grafo di attesa Grafo di allocazione risorseGrafo di attesa corrispondente Un arco P i P j esiste nel grafo di attesa, se e solo se il corrispondente grafo di allocazione risorse contiene i due archi P i R q, R q P j, per una qualche risorsa R q.

29 Silberschatz, Galvin and Gagne Operating System Concepts Più istanze di ciascun tipo di risorsa Available Available: vettore di lunghezza m, indica il numero di risorse disponibili di ciascun tipo. Allocation Allocation: matrice n x m, definisce il numero di risorse di ciascun tipo attualmente allocate a ciascun processo. Request Request: matrice n x m, indica la richiesta corrente di ciascun processo. Se Request [i,j ] = k, il processo P i richiede k istanze supplementari della risorsa R j.

30 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo di rilevamento WorkFinish 1. Siano Work e Finish due vettori di lunghezza m e n, rispettivamente. Inizialmente si ponga: a) Work = Available b) Per i = 1,2, …, n, se Allocation i 0, Finish[ i ] = false; altrimenti, Finish[ i ] = true altrimenti, Finish[ i ] = true 2. Si trovi un indice i tale che valgano entrambe le condizioni: a) Finish[ i ] = false b) Request i Work Se tale i non esiste si vada al passo 4.

31 Silberschatz, Galvin and Gagne Operating System Concepts Algoritmo di rilevamento Work = Work + Allocation i Finish[i] = true 3. Work = Work + Allocation i Finish[i] = true si vada al passo 2. Finish[ i ] == false Finish[ i ] == false 4. Se Finish[ i ] == false, per qualche i, 1 i n, il sistema è in uno stato di deadlock. Inoltre, se Finish[ i ] == false, P i è in deadlock. Lalgoritmo richiede un numero di operazioni dellordine di (m x n 2 ) per determinare se il sistema è in uno stato di deadlock.

32 Silberschatz, Galvin and Gagne Operating System Concepts Esempio di applicazione dellalgoritmo di rilevamento Cinque processi, da P 0 a P 4 ; tre tipi di risorse: A (7 instanze), B (2 instanze), e C (6 instanze). Istantanea al tempo T 0 : AllocationRequestAvailable A B C A B C A B C P P P P P La sequenza conduce a Finish[ i ] = true per tutti gli i.

33 Silberschatz, Galvin and Gagne Operating System Concepts Esempio di applicazione dellalgoritmo di rilevamento P 2 richiede unistanza supplementare della risorsa C. Request A B C P P P P P Stato del sistema? Può reclamare le risorse possedute dal processo P 0, ma il numero di risorse disponibili non è sufficiente a soddisfare gli altri processi deadlock: processi P 1, P 2, P 3, e P 4. Può reclamare le risorse possedute dal processo P 0, ma il numero di risorse disponibili non è sufficiente a soddisfare gli altri processi deadlock: processi P 1, P 2, P 3, e P 4.

34 Silberschatz, Galvin and Gagne Operating System Concepts Impiego dellalgoritmo di rilevamento Quando e quanto spesso richiamare lalgoritmo 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 dal deadlock (e sui quali deve essere effettuato un rollback ): Numero di processi che vengono eventualmente influenzati dal deadlock (e sui quali deve essere effettuato un rollback ): Almeno un processo per ciascun ciclo. Almeno un processo per ciascun ciclo. Se lalgoritmo 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, lalgoritmo può essere richiamato ogni volta che una richiesta non può essere soddisfatta immediatamente o quando lutilizzo della CPU scende al di sotto del 40%.

35 Silberschatz, Galvin and Gagne Operating System Concepts Ripristino dal deadlock: Terminazione di processi Terminazione in abort di tutti i processi in deadlock. Terminazione in abort di un processo alla volta fino alleliminazione 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 necessario al completamento del processo. Il tempo di computazione trascorso e il tempo ancora necessario al completamento del processo. Quantità e tipo di risorse impiegate. Quantità e tipo di risorse impiegate. Risorse ulteriori necessarie al processo per terminare il proprio compito. Risorse ulteriori necessarie al processo per terminare il 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.

36 Silberschatz, Galvin and Gagne Operating System Concepts Ripristino dal deadlock: Prelazione di risorse Selezione di una vittima Selezione di una vittima È necessario stabilire lordine di prelazione per minimizzare i costi. Rollback Rollback Un processo a cui sia stata prelazionata una risorsa deve ritornare ad uno stato sicuro, da cui ripartire. Starvation Starvation Alcuni processi possono essere sempre selezionati come vittime della prelazione: includere il numero di rollback nel fattore di costo.

37 Silberschatz, Galvin and Gagne Operating System Concepts Approccio combinato alla gestione del deadlock Si combinano i tre approcci di base: prevenzione prevenzione evitare i deadlock evitare i deadlock rilevamento rilevamento permettendo luso dellapproccio 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.


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

Presentazioni simili


Annunci Google