La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Deadlock. Sistemi Operativi a.a. 2007-08 7.2 Deadlock Il problema del deadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione.

Presentazioni simili


Presentazione sul tema: "Deadlock. Sistemi Operativi a.a. 2007-08 7.2 Deadlock Il problema del deadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione."— Transcript della presentazione:

1 Deadlock

2 Sistemi Operativi a.a Deadlock Il problema del 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 Oggi cè un traffico tremendo…

3 Sistemi Operativi a.a Il problema del deadlock 1 In un ambiente multiprogrammato più processi possono entrare in competizione per ottenere un numero finito di risorse Deadlockstallo Deadlock o stallo insieme di processi bloccati: ciascun processo possiede una risorsa ed attende di acquisire una risorsa allocata ad un altro processo dellinsieme

4 Sistemi Operativi a.a Esempio 1 Nel sistema sono presenti due stampanti P 1 e P 2 si sono assicurati una stampante ciascuno ed entrambi richiedono anche laltra Esempio2 Esempio 2 Semafori A e B, inizializzati a 1: P 1 P 2 wait (A);wait(B); wait (B);wait(A); Il problema del deadlock 2

5 Sistemi Operativi a.a 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 recovery Se si verifica un deadlock, il recovery può essere effettuato se unauto torna indietro (rilascia la risorsa ed esegue un roll back) In caso di deadlock, può essere necessario che più auto debbano tornare indietro È possibile si verifichi starvation (attesa indefinita)

6 Sistemi Operativi a.a 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 che laltro si sia mossoQuando due treni convergono ad un incrocio, ambedue devono arrestarsi, e nessuno dei due può ripartire prima che laltro si sia mosso

7 Sistemi Operativi a.a 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 Richiesta se la richiesta non può essere soddisfatta immediatamente, causa diverso utilizzo della risorsa, il processo richiedente deve attendere fino allacquisizione della risorsaUtilizzoRilascio request/ release open/close allocate/free wait/signal Richiesta/rilascio realizzati con apposite system call: request/ release device, open/close file, allocate/free memory o con wait/signal su opportuni semafori

8 Sistemi Operativi a.a Caratterizzazione del deadlock Una situazione di deadlock può verificarsi solo se valgono simultaneamente le seguenti condizioni: 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 della sua esecuzione 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

9 Sistemi Operativi a.a Grafo di allocazione risorse 1 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… Linsieme V è partizionato in due sottoinsiemi: 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 Arco di richiesta Arco di richiesta: P i R j Arco di assegnazione Arco di assegnazione: R j P i

10 Sistemi Operativi a.a Processo Tipo di risorsa con 4 istanze P i richiede unistanza di R j P i possiede unistanza di R j PiPi RjRj PiPi RjRj Grafo di allocazione risorse 2 Arco di assegnazione Arco di richiesta

11 Sistemi Operativi a.a Esempi di grafo di allocazione risorse 1 Grafo di allocazione risorseGrafo di allocazione risorse con deadlock

12 Sistemi Operativi a.a Esempi di grafo di allocazione risorse 2 Se il grafo non contiene cicli non 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 si hanno più istanze per tipo di risorsa, allora il deadlock è possibile (ma non certo) Grafo di allocazione risorse con un ciclo, ma privo di deadlock Il ciclo cè, ma il deadlock no…

13 Sistemi Operativi a.a Metodi per la gestione del deadlock 1 mai Assicurare che il sistema non entri mai in uno stato di deadlock Prevenire i deadlock Prevenire i deadlock: evitare che si verifichino contemporaneamente mutua esclusione, possesso e attesa, impossibilità di prelazione e attesa circolare basso utilizzo risorse e throughput ridotto Evitare i deadlock Evitare i deadlock: evitare gli stati del sistema a partire dai quali si può evolvere verso il deadlock

14 Sistemi Operativi a.a Metodi per la gestione del deadlock 2 Permettere al sistema di entrare in uno stato di deadlock, quindi ripristinare il sistema Determinare la presenza di 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, inclusi Windows e UNIX

15 Sistemi Operativi a.a Prevenire i deadlock 1 Limitare le modalità di richiesta/accesso delle/alle risorse Mutua esclusione Mutua esclusione non è richiesta per risorse condivisibili; deve valere invece per risorse che non possono essere condivise, quindi non può essere prevenuta 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 Basso impiego delle risorse; possibile lattesa indefinita per processi con forti richieste di risorse

16 Sistemi Operativi a.a Impossibilità di prelazione Se un processo, che possiede alcune risorse, richiede unaltra risorsa, che non gli può essere allocata immediatamente, allora rilascia tutte le risorse possedute 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 risorse precedentemente possedute sia quelle attualmente richieste Alternativamente, le risorse possono essere assegnate al processo che le richiede, qualora siano attualmente possedute da un altro processo in attesa Protocollo adatto per risorse il cui stato si può salvare e recuperare facilmente (registri, memoria; non per dispositivi di I/O) Prevenire i deadlock 2

17 Sistemi Operativi a.a Attesa circolare Attesa circolare si impone un ordinamento totale su tutti i tipi di risorsa, f :R N, e si pretende che ciascun processo richieda le risorse in ordine crescente In alternativa, ogni processo, prima di richiedere unistanza di R j, deve rilasciare tutte le istanze di R i, tale che f(R i ) f(R j ) Supponiamo che, avendo imposto lordinamento suddetto, si verifichi comunque lattesa circolare Siano { P 1, P 2,…, P n } i processi coinvolti nellattesa circolare, dove P i attende la risorsa R i posseduta dal processo P i+1 Poiché il processo P i+1 possiede la risorsa R i mentre richiede la risorsa R i+1, i, vale la condizione f(R 1 ) f(R 2 ) … f(R n ) f(R 1 ) assurdo! Prevenire i deadlock 3

18 Sistemi Operativi a.a Evitare i deadlock Presuppone che il sistema conosca a priori informazioni addizionali sulle richieste future dei processi 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

19 Sistemi Operativi a.a Stato sicuro 1 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, più le risorse possedute da tutti i P j, con j i

20 Sistemi Operativi a.a Stato sicuro 2 Cioè… Se le richieste di P i non possono essere soddisfatte immediatamente, allora P i può attendere finché tutti i P j abbiano 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 i termina, P i+1 può ottenere le risorse richieste, etc.

21 Sistemi Operativi a.a Se un processo richiede una risorsa disponibile, può dovere attendere scarso utilizzo delle risorse del sistema Stato sicuro 3 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 garantisce che un sistema non evolva mai verso uno stato non sicuro

22 Sistemi Operativi a.a Stato sicuro 4 Esempio 12 istanze di una risorsa complessivamente disponibili Al tempo t 0 Stato sicuro: Se allistante t 1 il processo P 2 richiede unulteriore unità, e questa gli viene assegnata, lo stato diventa non sicuro (solo P 1 può terminare) ProcessoRichiesta maxUnità possedute P0P0 105 P1P1 42 P2P unità disponibili

23 Sistemi Operativi a.a Algoritmi per evitare i deadlock Risorse ad istanza singola: utilizzo del grafo di allocazione risorse algoritmo del banchiere Risorse ad istanza multipla: algoritmo del banchiere

24 Sistemi Operativi a.a Algoritmo con grafo di allocazione risorse 1 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 in futuro arco di richiesta Un arco di reclamo viene convertito in un arco di richiesta quando il processo P i richiede effettivamente la risorsa R j arco di assegnamento Un arco di richiesta viene convertito in un arco di assegnamento quando la risorsa viene allocata al processo Quando una risorsa viene rilasciata da un processo, larco di assegnamento viene riconvertito in un arco di reclamo a priori 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

25 Sistemi Operativi a.a Supponiamo che il processo P i richieda una risorsa R j La richiesta può essere accordata solo se la conversione dellarco di richiesta in arco di assegnamento non provoca il formarsi di un ciclo nel grafo di allocazione delle risorse Algoritmo con grafo di allocazione risorse 2

26 Sistemi Operativi a.a Grafo di allocazione risorseStato non sicuro in un grafo di allocazione risorse Algoritmo con grafo di allocazione risorse 3

27 Sistemi Operativi a.a 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

28 Sistemi Operativi a.a Strutture dati per lalgoritmo del banchiere Sia n il numero dei processi presenti nel sistema ed m il numero dei tipi di risorse Available Available : Vettore di lunghezza m ; se Available [j] k, vi sono k istanze disponibili del tipo di risorsa R j Max Max : matrice n 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 m ; se Allocation [i,j] k, a P i sono attualmente allocate k istanze di R j Need Need : matrice n 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]

29 Sistemi Operativi a.a Algoritmo di verifica della sicurezza WorkFinish 1. Siano Work e Finish vettori di lunghezza m ed 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 Work Work Allocation i Finish [i] true si torni al passo Se Finish [i] true per ogni i, il sistema è in stato sicuro

30 Sistemi Operativi a.a 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 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 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 a P i delle risorse richieste, modificando lo stato di allocazione 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

31 Sistemi Operativi a.a Esempio di applicazione dellalgoritmo del banchiere 5 processi, da P 0 a P 4 3 tipi di risorse: A (10 istanze), B (5 istanze) e C (7 istanze) Istantanea al tempo T 0 : AllocationMaxAvailable A B CA B C A B C P P P P P

32 Sistemi Operativi a.a Esempio (Cont.) La matrice Need è definita come Need Max AllocationNeed A B C P P P P P Il sistema è in stato sicuro, dato che la sequenza soddisfa i criteri di sicurezza

33 Sistemi Operativi a.a P 1 richiede (1,0,2) Verificare che Request Available (cioè, (1,0,2) (3,3,2)) 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 La richiesta di P 1 viene soddisfatta immediatamente Può essere soddisfatta la richiesta di P 4 per (3,3,0) ? Può essere soddisfatta la richiesta di P 0 per (0,2,0) ? Esempio (Cont.)

34 Sistemi Operativi a.a Rilevamento del deadlock Si permette al sistema di entrare in uno stato di deadlock Per ripristinarne le funzionalità, sono necessari… …un algoritmo di rilevamento del deadlock e, successivamente, un algoritmo di ripristino dal deadlock Costi aggiuntivi per la memorizzazione delle informazioni necessarie al ripristino

35 Sistemi Operativi a.a Istanza singola di ciascun tipo di risorsa grafo di attesa Impiega un grafo di attesa 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 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

36 Sistemi Operativi a.a 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

37 Sistemi Operativi a.a Available Available : vettore di lunghezza m, indica il numero di risorse disponibili di ciascun tipo Allocation Allocation : matrice n m, definisce il numero di risorse di ciascun tipo attualmente allocate a ciascun processo Request Request : matrice n 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 Lalgoritmo di rilevamento indaga su ogni possibile sequenza di assegnazione per i processi da completare Più istanze per ciascun tipo di risorsa

38 Sistemi Operativi a.a Algoritmo di rilevamento 1 WorkFinish 1. Siano Work e Finish due vettori di lunghezza m e n, rispettivamente; inizialmente sia: a) Work Available b) Per i 1,2,…, n, se Allocation i 0, Finish [i] false; 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 Work Work Allocation i Finish [i] true si vada al passo 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

39 Sistemi Operativi a.a Algoritmo di rilevamento 2 Note Lalgoritmo richiede un numero di operazioni dellordine di O ( m n 2 ) per determinare se il sistema è in uno stato di deadlock Si ipotizza (ottimisticamente) che P i non intenda richiedere altre risorse per completare il proprio compito, ma piuttosto che restituisca in tempo finito quelle che già possiede Se ciò non accade, può verificarsi uno stallo, che verrà rilevato alla prossima verifica sul sistema

40 Sistemi Operativi a.a Esempio di applicazione dellalgoritmo di rilevamento 5 processi, da P 0 a P 4 3 tipi di risorse: A (7 istanze), B (2 istanze) e C (6 istanze) 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 ogni i

41 Sistemi Operativi a.a Esempio (Cont.) P 2 richiede unistanza supplementare della risorsa CRequest A B C P P P P P Qual è lo 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: coinvolge i processi P 1, P 2, P 3 e P 4

42 Sistemi Operativi a.a Impiego dellalgoritmo di rilevamento Quando e quanto spesso richiamare lalgoritmo di rilevamento dipende da: Frequenza (presunta) con la quale si verificano i deadlock Numero di processi che vengono eventualmente influenzati dal deadlock (e sui quali occorre effettuare un roll back) Almeno un processo per ciascun ciclo Se lalgoritmo viene richiamato con frequenza casuale, 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%

43 Sistemi Operativi a.a 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 Il tempo di computazione trascorso e il tempo ancora necessario al completamento del processo Quantità e tipo di risorse impiegate Risorse ulteriori necessarie al processo per terminare il proprio compito Numero di processi che devono essere terminati Tipo di processo: interattivo o batch

44 Sistemi Operativi a.a Ripristino dal deadlock: prelazione di risorse Selezione di una vittima Selezione di una vittima È necessario stabilire lordine di prelazione per minimizzare i costi Roll back Roll back 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 roll back nel fattore di costo


Scaricare ppt "Deadlock. Sistemi Operativi a.a. 2007-08 7.2 Deadlock Il problema del deadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione."

Presentazioni simili


Annunci Google