Sei sulla pagina 1di 16

Grafo di allocazione

delle risorse

Ripasso ed esercizi

Come fatto un GdA?

Un insieme di
verticiV, composto
da due
sottoinsiemi P ed R
Un insieme di
archiE

P = {P1, , Pn}
rappresenta i
processi del
sistema
R = {R1, , Rm}
rappresenta le
risorse del sistema

Archi nel GdA

Quando un
processo Pi
richiede un'istanza
di una risorsa Rj,
creiamo un arco
PiRj
(arco di richiesta)

Quando un'istanza
di una risorsa Rj
gi assegnata ad un
processo Pi, creiamo
un arco RjPi
(arco di
assegnazione)

Grafi-camente...

Le risorse sono
rappresentate da
rettangoli,
all'interno dei quali
un punto
rappresenta una
istanza della
risorsa

I processi sono
rappresentati da
cerchi

Esercizio 1

P={P1, P2, P3}

R={R1, R2, R3, R4}

E={
P 1 R 1, P 2 R 3,
R 1 P 2, R 2 P 1 ,
R 2 P 2, R 3 P 3 ,

Esercizio 1

P={P1, P2, P3}

R={R1, R2, R3, R4}

E={
P 1 R 1, P 2 R 3,
R 1 P 2, R 2 P 1 ,
R 2 P 2, R 3 P 3 ,

Esercizio 2

P={P1, P2, P3, P4, P5, P6}

R={R1, R2, R3, R4}

E={
P1 R1, R1 P2, P2 R2,
R 2 P 3, P 6 R 2 , R 4 P 6,
P5 R4, R3 P5, P4 R3,

Esercizio 2

P={P1, P2, P3, P4, P5, P6}

R={R1, R2, R3, R4}

E={
P1 R1, R1 P2, P2 R2,
R 2 P 3, P 6 R 2 , R 4 P 6,
P5 R4, R3 P5, P4 R3,

Stallo/Deadlock

Per verificare se c' un deadlock usando


il Grafo di allocazione, dobbiamo cercare
dei cicli in esso.
La presenza del ciclo nel grafo di
allocazione condizione necessaria, ma
non sempre sufficiente, per la presenza di
situazioni di deadlock.

Riprendiamo l'es. 1

Attualmente non ci
sono cicli, ma cosa
succederebbe se
P3 richiedesse R2?

Riprendiamo l'es. 1

Attualmente non ci
sono cicli, ma cosa
succederebbe se P3
richiedesse R2?
Poich R2 non ha
istanze libere, si
forma un ciclo, e
dunque abbiamo uno
stallo

Riprendiamo l'es. 1

Attualmente non ci
sono cicli, ma cosa
succederebbe se P3
richiedesse R2?
Poich R2 non ha
istanze libere, si
forma un ciclo, e
dunque abbiamo uno
stallo

Esercizio 3

P={P1,P2,P3,P4,P5,P6,P7}

R={R1,R2,R3,R4,R5,R6}

E:
P1 occupa R1 e chiede R2
P2 chiede R3
P3 chiede R2
P4 occupa R4 e
chiede R2e R3

P5 occupa R3 e chiede R5
P6 occupa R6 e chiede R2
P7 occupa R5 e chiede R4

Esercizio 3

P={P1,P2,P3,P4,P5,P6,P7}

R={R1,R2,R3,R4,R5,R6}

E:
P1 occupa R1 e chiede R2
P2 chiede R3
P3 chiede R2
P4 occupa R4 e
chiede R2e R3

P5 occupa R3 e chiede R5
P6 occupa R6 e chiede R2
P7 occupa R5 e chiede R4

Esercizio 3

P={P1,P2,P3,P4,P5,P6,P7}

R={R1,R2,R3,R4,R5,R6}

E:
P1 occupa R1 e chiede R2
P2 chiede R3
P3 chiede R2
P4 occupa R4 e
chiede R2e R3

P5 occupa R3 e chiede R5
P6 occupa R6 e chiede R2
P7 occupa R5 e chiede R4

Bibliografia

A. Silberschatz, P. B. Galvin, G. Gagne,


Sistemi operativi Concetti ed esempi
7^ ed. , Pearson, Milano 2006

Potrebbero piacerti anche