Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le...

66
1 Lezione T26 Deadlock Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Transcript of Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le...

Page 1: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

1

Lezione T26DeadlockSistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014Dipartimento di Scienze Fisiche, Informatiche e MatematicheUniversità di Modena e Reggio Emiliahttp://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Page 2: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

2

Quote of the day(Meditate, gente, meditate...)

“When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone.”Decreto approvato dalla legislatura del Kansas

Page 3: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

3

INTRODUZIONE

Page 4: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

4

Il concetto di risorsa(Fornisce servizi agli utenti, che se la contendono)

Un SO multiprogrammato gestisce un insieme di risorse hardware/software.

Hardware: CPU, memoria, disco, rete.Software: descrittori vari, strutture condivise.

I processi competono per l'assegnazione di un sottoinsieme finito di tali risorse.

Page 5: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

5

Classificazione delle risorse(Una risorsa di un certo tipo Una classe con N istanze)→

Dal punto di vista modellistico, si preferisce raggruppare tutte le risorse simili in una classe.Esempio: un calcolatore ha 1GB di RAM.

Non ha senso dire: il calcolatore ha 1G risorse di 1 bytel'una.Ha senso dire: esiste una singola risorsa (la memoriacentrale) con 1G istanze disponibili.

Tipicamente, un processo non è interessato ad una specifica istanza della risorsa.

Va bene una qualunque delle istanze disponibili.

Page 6: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

6

Proprietà delle risorse(Influenzano i meccanismi di prenotazione e rilascio)

Il comportamento delle risorse è caratterizzato caratterizzato da alcune proprietà.

Risorsa riutilizzabile vs. non riutilizzabile.Risorsa con assegnazione statica vs. dinamica.Risorsa con accesso seriale vs. concorrente.Risorsa prerilasciabile vs. non prerilasciabile.

Page 7: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

7

Risorse riutilizzabili e non riutilizzabili(Riutilizzabili Sono allocabili e rilasciabili a più utenti)→

Alcune risorse sono riutilizzabili.Non sono distrutte dopo il loro utilizzo.Il SO determina la loro assegnazione ai processi.Esempi: CPU, canali I/O, memoria centrale.

Altre risorse sono non riutilizzabili.Sono distrutte dopo il loro utilizzo.Possono essere assegnate da processo a processo.Esempi: interruzioni, segnali, messaggi.

Page 8: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

8

Risorse assegnate staticamente e dinamicamente(Assegnazione dinamica Maggiormente soggetta all'accesso concorrente)→

Alcune risorse sono assegnate staticamente.Al momento della creazione di un processo.L'assegnazione rimane valida fino alla terminazionedel processo.Esempi: descrittori di processo.

Alcune risorse sono assegnate dinamicamente.Dal processo durante la sua esecuzione.Sono rilasciate dopo l'uso.Esempi: periferiche I/O.

Page 9: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

9

Risorse con accesso seriale e concorrente(Accesso concorrente Va protetto con i lock)→

Alcune risorse sono accessibili serialmente.Solo da un processo alla volta (mutua esclusione).Esempi: CPU, sezioni critiche.

Alcune risorse sono accessibili concorrentemente.

Da più processi simultaneamente.Esempi: file in sola lettura.

Page 10: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

10

Risorse prerilasciabili e non prerilasciabili(Risorse non prerilasciabili Rischio di deadlock)→

Alcune risorse sono prerilasciabili.Il SO le può “sottrarre” ad un processo prima chequest'ultimo le abbia rilasciate.Il processo che subisce il prerilascio si sospende.La risorsa prerilasciata sarà restituita successivamenteal processo.Esempi: CPU, pagine di memoria (swap).

Altre risorse non sono prerilasciabili.Il SO non le può sottrarle in anticipo al processo.

Page 11: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

11

Modello di accesso e rilascio(Quello classico: lock, uso, unlock)

Su richiesta di un processo, viene assegnata una qualunque istanza della risorsa.Scenario di uso della risorsa.

Richiesta: se non è disponibile una istanza dellarisorsa, il processo “attende” fino a che non se ne liberialmeno una.Uso: il processo opera sulla risorsa.Rilascio: il processo rilascia la risorsa, qualora essa siariutilizzabile.

Page 12: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

12

Tipologie delle richieste(Singola, multipla, bloccante, non bloccante)

Richiesta singola: richiesta di un'unica istanza di un'unica classe di risorsa.

Caso standard.Richiesta multipla: richiesta di più istanze di più classi di risorse.

Deve essere soddisfatta integralmente.Richiesta bloccante: il processo richiedente si sospende se non ottiene immediatamente l'assegnazione.Richiesta non bloccante: si notifica al processo richiedente la mancata assegnazione della risorsa, senza provocarne la sospensione.

Page 13: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

13

Definizione di deadlock(Semplice e chiara)

Un insieme di processi è in deadlock (morsa letale) se si verificano le seguenti condizioni.

Ciascun processo è in attesa di un evento ben preciso.L'unico processo in grado di scatenare l'evento fa partedell'insieme.Qui, l'evento è il rilascio di una risorsa posseduta da unodei processi nell'insieme.Nessuno dei processi è in grado di eseguire, rilasciarerisorse, risvegliarsi.

→ STALLO.

Page 14: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

14

Esempio di stallo(Eloquente)

Nessun autobus può completare l’attraversamento.Ciascun autobus attende che un altro attraversi e liberi l’incrocio.Tutti gli autobus sono in attesa di un evento che non può mai verificarsi.

Page 15: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

15

Condizioni necessarie di Coffmann(Meno chiare)

Condizioni necessarie per la presenza di deadlock (1971).

Mutua esclusione: almeno una delle risorse deveessere di tipo seriale.Possesso e attesa: le richieste sono di tipo bloccante,e un processo che ha già ottenuto risorse puòchiederne ancora.Impossibilità di prerilascio: le risorse coinvolte nonsono prerilasciabili.

Page 16: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

16

Condizioni necessarie di Coffmann(Meno chiare)

Condizioni necessarie per la presenza di deadlock (1971).

Attesa circolare: esiste un insieme di processiP0, P1,...,Pn} in cui

P0 attende una risorsa posseduta da P1.P1 attende una risorsa posseduta da P2.…Pn attende una risorsa posseduta da P0.

Page 17: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

17

Grafo di allocazione di Holt(Modella le prenotazioni e le acquisizioni di risorse)

Grafo orientato e bipartito modellante le relazioni fra processi e risorse.

Grafo orientato: gli archi hanno una direzione.Grafo bipartito: i nodi sono suddivisi in duesottoinsiemi, e non esistono archi colleganti nodidello stesso sottoinsieme.

I due sottoinsiemi sono risorse e processi. Gli archi sono di due tipologie.

Risorsa processo: la risorsa è associata al processo.→Processo risorsa: il processo ha richiesto la risorsa.→

Page 18: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

18

Grafo di allocazione di Holt(Modella le prenotazioni e le acquisizioni di risorse)

Formalmente:Set vertici V = P U R.P={P0, P1,...,Pn} (processi).R={R0, R1,...,Rk} (classi di risorse).

Set archi E.Arco di richiesta: Pi→Rj se un processo Pi ha richiestoun'istanza di risorsa Rj.Arco di assegnazione: Rj→Pi se un'istanza di risorsa Rjè stata assegnata al processo Pi.

Page 19: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

19

Grafo di allocazione di Holt(Rappresentazione grafica di processi, risorse, richieste, assegnazioni)

Risorsariutilizzabile

Risorsa nonriutilizzabile

Istanza di unadata risorsa

Risorsaassegnata

Richiestapendente

P Processo

Risorsa chepuò esserecreata da

R R

Page 20: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

20

Grafo di allocazione di Holt(Grafi di esempio)

P1 P2

R1

R2

R3

R3 distruttaP2 ottiene R1

P1 P2

R1

R2

R3

Evoluzione per stati successiviStato j Stato j+1

Page 21: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

21

Strategie di gestione del deadlock(Ostrich algorithm, deadlock detection and recovery)

Ostrich algorithm.Si ignora del tutto il problema.

Deadlock detection and recovery.Si fa evolvere il sistema per stati successivi che

possono condurre al deadlock.Si rileva il deadlock e lo si rimuove.

Page 22: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

22

Strategie di gestione del deadlock(Deadlock avoidance, deadlock prevention)

Deadlock avoidance.Si impedisce al sistema di evolvere verso unacondizione di deadlock.Il deadlock non può mai presentarsi.

Deadlock prevention.Si invalida almeno una delle quattro condizioninecessarie.

Page 23: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

23

IGNORARE IL DEADLOCK

Page 24: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

24

Ostrich algorithm(Ignorare il problema, nella speranza che non si presenti)

Assicurare l'assenza di deadlock impone costi molto alti in termini di prestazioni e funzionalità. Tali costi sono necessari in alcuni contesti, ma insopportabili in altri.Si considera il rapporto costi/benefici: se la probabilità di ottenere un deadlock è bassa, il costo associato non si giustifica.Approccio adottato dalla maggioranza dei SO (UNIX, Windows): ignorare il problema.L'utente preferisce qualche stallo occasionale (da risolvere “a mano”), piuttosto che restrizioni eccessive.

Page 25: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

25

RILEVARE IL DEADLOCK

Page 26: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

26

Deadlock detection(Rilevare il deadlock)

Si mantiene costantemente aggiornato il grafo di allocazione risorse.

Si registrano le richieste di risorse da parte deiprocessi.Si registrano le assegnazioni di processi a risorse.

Si usa un algoritmo di riconoscimento di deadlock sul grafo di allocazione risorse ogniqualvolta esso cambia.Problema: come si riconosce uno stato di deadlock?

Page 27: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

27

Riconoscimento con una sola istanza(Ipotesi di Coffman più singola istanza Deadlock Ciclo nel grafo di Holt)→ ↔

Nel caso più semplice, ciascuna classe di risorse ha una sola istanza.Teorema: se le risorse sono accedute in mutua esclusione con richieste bloccanti, sono seriali (singola istanza) e non sono prerilasciabili, allora uno stato è di deadlock se e solo se il grafo di allocazione contiene un ciclo.

Page 28: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

28

Riconoscimento con una sola istanza(Ipotesi di Coffman più singola istanza Deadlock Ciclo nel grafo di Holt)→ ↔

Quindi, nel caso di una sola istanza per classe di risorsa, al SO basta mantenere aggiornato il grafo di allocazione e controllare, periodicamente, la presenza di cicli in tale grafo.Strategia naive: ricerca depth first con marcatura dei nodi.Se si incontra un nodo già marcato, c'è un ciclo.Nel caso di classi di risorse con singola istanza, le condizioni di Coffman da necessarie diventano necessarie e sufficienti.

Page 29: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

29

Riconoscimento con più istanze(Non vale più il teorema)

La presenza di un ciclo nel grafo di allocazione non è più condizione sufficiente per la presenza di un deadlock.

P1 P2 P3

R1

R2

CicloDeadlock

Non c'è modo per cuiR1 possa liberare unaistanza da dare a P1(sbloccando, di fatto,il deadlock).

P1 P2 P3

R1

R2

CicloNO Deadlock

Quando P3 finisce diusare R1, la si assegnaa P1, rompendo difatto il ciclo.

Page 30: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

30

Riconoscimento con più istanze(Il concetto di riducibilità permette di stabilire se l'intreccio si scioglie o no)

Un grafo di allocazione è detto riducibile se esiste almeno un nodo processo con soli archi entranti.Significato: il processo ha terminato di richiedere risorse, e le sta solo possedendo.Il processo di riduzione consiste nell'eliminare tutti gli archi di un siffatto nodo, riassegnando le istanze liberate ad altri processi.Un grafo di allocazione è completamente riducibile se esiste una sequenza di riduzioni tale da eliminare tutti gli archi del grafo.

Page 31: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

31

Motivazioni(Del concetto di riducibilità)

Un nodo con soli archi entranti rappresenta un processo che ha ottenuto tutte le istanze di risorse che voleva.Tale processo, prima o dopo, rilascerà le istanze prenotate.Tale processo non può, per definizione, essere responsabile di un deadlock (non fa parte di un ciclo).Togliendo gli archi al processo, si simula la situazione immediatamente successiva al rilascio.Si vuole capire se le istanze rilasciate sono sufficienti a rimuovere un eventuale deadlock.

Page 32: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

32

Riconoscimento con più istanze(Esempio della riduzione)

Riduzione

P1 P2

R1

R2

Nodo processo con soli archi entranti; si rimuovono gli archi.

Riduzione

P1 P2

R1

R2

Page 33: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

33

Riconoscimento più istanze(Ipotesi di Coffman più multiple istanze Deadlock Incompleta riducibilità)→ ↔

Teorema: se le risorse sono accedute in mutua esclusione con richieste bloccanti, sono seriali (multipla istanza) e non sono prerilasciabili, allora uno stato non è di deadlock se e solo se il grafo di allocazione è completamente riducibile.

Page 34: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

34

Riconoscimento più istanze(Ipotesi di Coffman più multiple istanze Deadlock Incompleta riducibilità)→ ↔

Quindi, nel caso in cui ho più istanze per classe di risorsa, il SO:

mantiene aggiornato il grafo di allocazione.calcola le riduzioni.scopre se il grafo è completamente riducibile.deduce la non presenza di un deadlock.

Page 35: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

35

Esempio(C'è deadlock?)

R1 R2

R3

P1 P3

P2

P4

Page 36: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

36

Esempio(C'è deadlock?)

R1 R2

R3

P1 P3

P2

P4

Si riduce P1. Siassegna l'istanzadi risorsa liberataa P2.

Page 37: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

37

Esempio(C'è deadlock?)

R1 R2

R3

P1 P3

P2

P4

Si riduce P2. Siassegnano le istanzedi risorse liberatea P3 e P4.

Page 38: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

38

Esempio(C'è deadlock?)

R1 R2

R3

P1 P3

P2

P4

Si riduce P3.

Page 39: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

39

Esempio(C'è deadlock?)

R1 R2

R3

P1 P3

P2

P4

Si riduce P4. Il grafoè completamenteriducibile non c'è→il deadlock.

Page 40: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

40

Riconoscimento con richieste singole(Il concetto di annodamento permette di stabilire se l'intreccio si scioglie o no)

L'ultimo caso degno di menzione è quello in cui un processo non può mai richiedere più di una risorsa alla volta. In tal caso, si usa la nozione di knot (annodamento) di un grafo.Dato un nodo n di un grafo orientato, l'insieme dei nodi raggiungibili da n viene detto insieme di raggiungibilità R(n).Un knot del grafo è il massimo sottoinsieme non banale di nodi M tale che, nM, R(n)=M.Partendo da un qualunque nodo di M, si possono raggiungere tutti i nodi di M e nessun altro all'infuori di esso.

Page 41: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

41

Riconoscimento con richieste singole(Esempio di grafo con e senza knot)

a

b c

d

a

b c

d

{a, c, d} non èun nodo

{b, c, d} èun nodo

Page 42: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

42

Riconoscimento con richieste singole(Ipotesi di Coffman più multiple istanze Deadlock Esiste un knot nel grafo→ ↔ )

Teorema: se le risorse sono accedute in mutua esclusione con richieste bloccanti e singole, sono seriali e non sono prerilasciabili, allora uno stato è di deadlock se e solo se esiste un knot nel grafo di allocazione.

Page 43: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

43

Riconoscimento con richieste singole(Ipotesi di Coffman più multiple istanze Deadlock Esiste un knot nel grafo→ ↔ )

In definitiva, se le richieste sono sempre singole, il SO deve:

mantenere aggiornato il grafo di allocazione.controllare periodicamente la presenza di un knot.decidere della presenza di un deadlock.

Page 44: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

44

Uso degli algoritmi di detection(Quando si usano?)

Ad ogni richiesta di risorsa da parte di un processo.

Capacità di determinare la richiesta e, dunque, ilprocesso, che causa il deadlock.Costo molto elevato.Capacità di intervento tempestivo (non degradaeccessivamente l'utilizzo delle risorse).

Page 45: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

45

Uso degli algoritmi di detection(Quando si usano?)

Su base periodica.Incapacità di determinare la richiesta e, dunque, ilprocesso, che causa il deadlock.Costo ridotto.Ridotta capacità di intervento tempestivo (maggioredegradazione dell'utilizzo delle risorse).

Page 46: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

46

Deadlock recovery(Quando si applica?)

Terminazione del processo.Approccio non incrementale: si terminano tutti iprocessi coinvolti nel deadlock.Approccio incrementale: si terminano i processicoinvolti nel deadlock uno alla volta, fino allarisoluzione del deadlock.

Criteri di scelta: priorità, tempo di calcolo, tipo dirisorse occupate (per alcune il rilascio potrebbeessere più semplice di altre).

Page 47: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

47

Deadlock recovery(Quando si applica?)

Prelazione.Deassegnazione di risorse ad un processo coinvoltonel deadlock.Occorre selezionare un processo vittima e cercare diimpedire il fenomeno di starvation fra processi.

Checkpoint/Rollback.Lo stato dei processi viene periodicamente salvato sudisco (checkpoint).In caso di deadlock, si ripristina (rollback) uno o piùprocessi ad uno stato precedente, fino a quando ildeadlock non scompare.

Page 48: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

48

Deadlock recovery: considerazioni(Non è sempre così semplice ripristinare il sistema dopo un deadlock)

Terminare processi può essere costoso.Tali processi possono essere stati eseguiti per moltotempo (long-lived).Se terminati, dovranno ripartire da capo.

Terminare processi può lasciare le risorse in uno stato inconsistente.

Se un processo viene terminato nel bel mezzo di unasezione critica.

Operare una prelazione:non sempre è possibile.può richiedere interventi manuali (ad esempio: unastampante).

Page 49: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

49

PREVENIRE IL DEADLOCK

Page 50: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

50

Deadlock prevention(Prevenzione del deadlock; si annulla almeno una condizione di Coffman)

Se sono verificate tutte le condizioni necessarie, c'è rischio di deadlock.Se si invalida almeno una condizione necessaria, il deadlock non può verificarsi.

Page 51: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

51

Rimozione della mutua esclusione(Non sempre fattibile)

Si permette la condivisione delle risorse. Ad esempio: spool di stampa.

Tutti i processi credono di usare la stampantecontemporaneamente.

Problemi.Lo spooling non è sempre applicabile (ad esempio, non lo ai descrittori di processo).Si sposta il problema verso altre risorse (ad esempio, ildisco nel caso di spool di stampa).Cosa succede se due processi che vogliono stampare duedocumenti esauriscono lo spazio su disco?

Page 52: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

52

Rimozione di possesso e attesa(Si riduce l'efficienza del programma)

Si deve garantire che, quando un processo richiede una risorsa, non ne possieda già altre.

Un processo richiede tutte le risorse che gli servonoall'inizio della computazione.

Non sempre l'insieme delle richieste è noto findall'inizio.Si riduce il parallelismo.

Un processo richiede una risorsa solo se non nepossiede nessuna.

Bassa utilizzazione delle risorse.Starvation.

Page 53: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

53

Rimozione dell'impossibilità di prelazione(Non sempre è applicabile)

Se il processo possiede risorse e ne richiede un'altra, gli si fanno rilasciare tutte le risorse.

Il processo attenderà anche le risorse che possedevaprima del rilascio.

Quando un processo richiede risorse, si verifica la loro disponibilità.

Se sono disponibili, vengono assegnate.Se non sono disponibili, si verifica se sono assegnate adun processo che attende altre risorse.

Se il processo attende altre risorse, gli si sottraggonoquelle richieste.

Questo protocollo non sempre è applicabile (ad es.,stampanti, nastri).

Page 54: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

54

Rimozione dell'attesa circolare(Si riduce l'efficienza del programma)

Si impongono:un ordinamento totale all'insieme di tutti i tipi di risorse.un ordinamento crescente di numerazione alle risorserichieste da ciascun processo.

Ogni processo può richiedere risorse solo in ordine crescente di numerazione.

Pn non può più attendere P0.Altamente inefficiente.

Page 55: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

55

AGGIRARE IL DEADLOCK

Page 56: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

56

Deadlock avoidance(Si impedisce che il sistema arrivi ad uno stato di deadlock)

Prima di assegnare una risorsa ad un processo, si controlla se l'operazione può portare al pericolo di deadlock.In tal caso, l'operazione viene ritardata.I processi dichiarano l'ordine di prenotazione delle risorse.

Page 57: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

57

A cosa serve la deadlock avoidance(E cosa deve fare il SO per implementarla)

Conoscendo la sequenza completa di richieste e rilascio, si sa per ogni processo se esso deve attendere oppure no.Per stabilire se una richiesta possa essere soddisfatta o si debba attendere per evitare un deadlock, il SO deve:

esaminare le risorse attualmente disponibili.esaminare le risorse attualmente assegnate ad ogniprocesso.esaminare le richieste ed i rilasci futuri di ciascunprocesso.

Page 58: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

58

Stato sicuro e sequenza sicura(Sicuro non può progredire verso un deadlock)→

Stato sicuro: uno stato del sistema si dice sicuro se si possono assegnare risorse a ciascun processo in un qualunque ordine, senza il verificarsi di un deadlock.Sequenza sicura: una sequenza di processi (P1, P2, ..., Pn) è detta sicura se, per ogni Pi, le risorse di cui Pi necessita sono libere oppure in possesso di processi Pj, j<i.

Page 59: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

59

Deadlock avoidance e stati sicuri(Stato sicuro nessun rischio di deadlock; Stato non sicuro potrebbe esserci)→ →

Uno stato non sicuro non è uno stato di deadlock.Uno stato di deadlock è uno stato non sicuro.Dunque: uno stato non sicuro può condurre ad uno stallo.

Tipicamente, attraverso una sfortunata serie diprenotazioni.

Page 60: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

60

Algoritmi di deadlock avoidance(Partono da uno stato sicuro e mantengono il sistema in stati sicuri)

Il sistema è in uno stato sicuro se esiste almeno una sequenza sicura.Algoritmi per evitare deadlock:

partono da uno stato sicuro.mantengono il sistema in stati sicuri, applicando dellescelte ad ogni richiesta di risorsa.

Page 61: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

61

Suddivisione degli stati(Sicuri, non sicuri, deadlock)

Diagramma di Venn dei possibili stati del sistema.

Stati sicuri

Stati non sicuri

Stati dideadlock

Page 62: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

62

Grafo di allocazione con archi di reclamo(Modellano le future allocazioni Dicono se uno stato è sicuro o no)→

Algoritmo con grafo di allocazione.Si utilizza un nuovo tipo di arco nel grafo di allocazione delle risorse.Arco di reclamo Pi R→ j: Pi può richiedere Rj in un qualsiasi istante futuro.

Quando Pi richiede Rj, l'arco di reclamo diventa un arco dirichiesta.Quando Pi ottiene Rj, l'arco di richiesta diventa un arco diassegnazione.Quando Pi rilascia Rj, l'arco di assegnazione diventa unarco di reclamo.

Page 63: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

63

Alcune osservazioni(Sul costo computazionale)

Gli archi di reclamo devono essere inseriti all'attivazione del processo (necessità di conoscere le risorse di cui il processo può far richiesta).Per verificare la possibilità di trasformare gli archi di reclamo in archi di richiesta, è necessario visitare il grafo di allocazione per ogni richiesta di risorsa.Costo: O(n2) nel numero di processi.

Page 64: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

64

Grafo di allocazione con archi di reclamo(Uno schema aggiornato)

Risorsariutilizzabile

Risorsa nonriutilizzabile

Istanza di unadata risorsa

Risorsaassegnata

Richiestapendente

P Processo

Risorsa chepuò esserecreata da

R R

Arco di reclamo

Page 65: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

65

Grafo di allocazione con archi di reclamo(Un esempio)

P1 P2

R1

R2

Sia P1 che P2 intendono,durante la loro esecuzione,utilizzare R2.

Page 66: Lezione T26 Deadlock - WEB Lab Grafo di allocazione di Holt (Modella le prenotazioni e le acquisizioni di risorse) Grafo orientato e bipartito modellante le relazioni fra processi

66

Deadlock avoidance(Ipotesi di Coffman più arco di reclamo Deadlock Ciclo nel grafo→ ↔ )

Teorema: nell'ipotesi che Pi R→ j, se le risorse sono accedute in mutua esclusione con richieste bloccanti, sono seriali e non sono prerilasciabili:

il sistema è in uno stato sicuro se e solo se la conversionedell'arco di richiesta Pi R→ j in un arco di assegnazioneRj P→ i non introduce un ciclo nel grafo di allocazionedelle risorse con archi di reclamo.Altrimenti, il sistema è in uno stato non sicuro.