In un ambiente multiprogrammato più processi possono entrare in competizione per ottenere un numero finito di risorse.
Deadlock = STALLO — insieme di processi bloccati: ciascun processo “possiede” una risorsa ed attende di acquisire una risorsa allocata ad un altro processo dell’insieme.
Esempio 1: risorsa hardware
Esempio 2: risorsa software
P0 P1
wait(A); wait(B);
wait(B); wait(A);
- Fisiche: cpu, memoria, stampanti, dispositivi di I/O
- Logiche: file, semafori, sezioni critiche
- Ad es.: in un sistema biprocessore la “risorsa CPU” ha Wi =2 istanze
Una tabella nel kernel conserva lo stato di ogni risorsa (se e a chi è assegnata).
Se un processo richiede una risorsa già assegnata, il processo richiedente è inserito in una apposita coda di processi in attesa.
Il protocollo di accesso alle risorse da parte dei processi prevede:
Richiesta/rilascio realizzati con apposite system call: request/release device, open/close file, allocate/free memory.
Teorema: Una situazione di deadlock può verificarsi se e solo se valgono simultaneamente le seguenti condizioni:
Un deadlock si puo’ rappresentare mediante un grafo di allocazione risorse:
Un grafo è costituito da un insieme di vertici (o nodi) V variamente connessi per mezzo di un’insieme di archi E.
L’insieme V è partizionato in due sottoinsiemi:
L’insieme E consiste di
- R1 → W1 = 1 istanza
- R2 → W2 = 1 istanze
Il sistema è in deadlock?
- R1 → W1 = 1 istanza
- R2 → W2 = 2 istanze
Il sistema è in deadlock?
- R1 → W1 = 1 istanza
- R2 → W2 = 2 istanze
- R3 → W3 = 1 istanza
- R4 → W4 = 3 istanze
Il sistema è in deadlock?
- R1 → W1 = 1 istanza
- R2 → W2 = 2 istanze
- R3 → W3 = 1 istanza
- R4 → W4 = 3 istanze
P1 possiede un’istanza di R2 e attende un’istanza di R1
P2 possiede un’istanza di R1 e di R2 e attende un’istanza di R3
P3 attende un’istanza di R3 e attende un’istanza di R2
Il sistema e’ in deadlock?
- R1 → W1 = 2 istanza
- R2 → W2 = 2 istanze
P1 possiede un’istanza di R2 e attende un’istanza di R1
P2 possiede un’istanza di R1
P3 possiede un’istanza di R1 e attende un’istanza di R2
P4 possiede un’istanza di R2
Il sistema e’ in deadlock?
Ogni risorsa ha solo un’istanza.
La presenza di un ciclo è condizione necessaria e sufficiente per un deadlock (c’è ciclo se e solo se deadlock):
Qualche risorsa ha piu’ istanze.
La presenza di un ciclo è condizione necessaria ma non sufficiente per un deadlock (deadlock implica ciclo):
- può esserci deadlock (esempio 4);
- può non esserci deadlock (esempio 5).
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
15. I Sistemi Operativi distribuiti - parte seconda
16. I Sistemi Operativi distribuiti - parte terza
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
Silberschatz , Galvin, Gagne – Sistemi Operativi 8a ed.
Capitolo 6
Tanenbaum – Moderni sistemi operativi 3a ed.
Capitolo 7
Deitel, Deitel, Choffnes - Sistemi operativi 3a ed.
Capitolo 5
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.