Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Nome U M N
Davide 4 7 3
Carlo 2 4 2
Barbara 1 5 4
Anna 1 6 5
Disponibili 2
Secondo Esempio
Non è uno stato sicuro perché nessun cliente riesce a portare a termine i suoi affari
Nome U M N
Davide 4 7 3
Carlo 2 4 2
Barbara 2 5 3
Anna 1 6 5
Disponibili 1
Una richiesta viene evasa solo se porta in uno stato ancora sicuro altrimenti il processo
deve attendere
L'algoritmo descritto è applicabile ad un sistema con una singola risorsa multipla, ma può
essere generalizzato al caso di un sistema complesso con molte classi di risorse
L'algoritmo del banchiere soffre del solito problema: presuppone una conoscenza
completa del sistema
È comunque un punto di partenza per risolvere i casi concreti
L’unico processo che può ottenere tutte le risorse che gli servono è P3
P1 può terminare
P4 può avanzare
P4 può terminare
P2 può terminare
P0 può terminare
Disponibili 32423
Esercizio N 1
Esercizio N 2
Dato il seguente stato dei processi A, B, C, D, E dire e quali processi sono in
stallo. Motivare la risposta.
Risorse esistenti: [8,3,6,7]
Risorse Assegnate Risorse necessarie
R1 R2 R3 R4 R1 R2 R3 R4
Processo A 2 0 0 4 2 0 2 3
Processo B 2 1 2 1 0 2 1 1
Processo C 0 0 1 1 2 1 0 1
Processo D 1 0 2 1 0 1 1 0
Processo E 1 2 0 0 2 0 1 0
Soluzione:
Esercizio N 3
Si consideri un sistema dotato di 5 risorse (R,S,T,U,V) seriali, non
prerilasciabili, contese da cinque processi (A,B,C,D,E). Supponiamo che il
sistema allochi le risorse disponibili al primo processo che le richiede e che la
sequenza di richieste sia:
A richiede R
A richiede S
C richiede T
A richiede T
B richiede R
E richiede U
D richiede V
C richiede U
E richiede R
D richiede T
Soluzione:
Il sistema è in deadlock, infatti c’è un ciclo A, T, C, U, E, R, A che coinvolge A,
C, E.
Inoltre sono in deadlock anche D che attende su T (occupato da C) e B che
attende su R (occupato da A)
Sarebbe sufficiente far terminare uno qualsiasi tra A, C o E.
Terminare B o D non elimina il deadlock.
Esercizio N 4
Data la situazione schematizzata nelle tabelle seguenti, quante istanze della
risorsa R1 devono essere disponibili affinché il sistema sia safe?
(Commentare la scelta)
processi max ris. richieste
P1 211 422
P2 310 422
P3 130 161
P4 011 211
risorse disponibili
R1 R2 R3
X 1 1
Soluzione
Innanzitutto è possibile notare che per essere sicuri di terminare P2 o P3
occorrerebbe liberare delle risorse R2 ed R3, ad esempio terminando P1 o
P4.
Per essere in grado di terminare sicuramente P4 occorrono 2 risorse R1.
Per essere in grado di terminare sicuramente P1 occorrono 2 risorse R1, 1
risorsa R2 (disponibile), 1 risorsa R3 (disponibile).
Dunque perché il sistema sia safe occorrono almeno 2 risorse R1 disponibili.