Esercizio 1.
Spiegare il funzionamento dell’istruzione TSL (Test and Set Lock) e a qual fine viene utilizzata.
Esercizio 2 Scrivere in linguaggio C (o in pseudo-codice)
l’algoritmo di Peterson per la mutua esclusione.
Esercizio 3.
Descrivere i principali aspetti dell’algoritmo di scheduling di Unix.
Esercizio
4. Elencare le tecniche di IPC
(Interprocess
Communication) disponibili in Windows
2000.
Esercizio
5. Elencare le condizioni che causano la chiamata allo scheduler in
Windows
2000.
Esercizio
6. Supponiamo di avere quattro processi A, B, C, D e sono 4 tipi di
risorse (da
R1 a R4), disponibili rispettivamente con molteplicità 3, 2, 1, 2.
Supponiamo
che la sequenza di richieste/rilasci sia:
1.
A richiede R3
2.
B richiede R2
3.
C richiede R3
4.
A richiede R2
5.
D richiede R4
6.
B richiede R4
7.
A richiede R4
8.
B richiede R1
9.
B rilascia R4
10.
D richiede R1
11.
A richiede R1
12.
D richiede R3
13.
A richiede R4
Questa
sequenza determina un deadlock? Motivare la risposta.
Esercizio
7. Si consideri un sistema che adotta scheduling a priorità con code
multiple,
e si supponga la seguente situazione iniziale (2 è la priorità
maggiore):
priorità
2
processo A --> processo B
priorità
1
processo C
priorità
0
processo D --> processo E
si
assuma inoltre:
a)
il quanto di tempo lungo 20ms,
b)
la durata di ciascun processo pari a
31ms per A, 40ms per B, 11ms per C, 14ms per D e 25ms per E.
in
queste ipotesi e trascurando il tempo di commutazione di contesto si
calcoli il
tempo di completamento di ciascun processo. Quale sarebbe stato invece
il tempo
di completamento di ciascun processo se da questa situazione iniziale
si fosse
applicato lo scheduling SJF ?
Esercizio
8. Spiegare perché,
nel diagramma delle transizioni di
stato dei processi, non sono previste le transizioni:
(a)
stato di pronto a stato di attesa
(b)
stato di attesa ad esecuzione.
Esercizio
9
(a)
In che cosa consiste il problema delle
chiamate a sistema bloccanti nei
threads?
(b)
Questo problema si presenta quando essi
vengono gestiti a livello user o quando vengono gestiti a livello kernel ?
Spiegare.
Esercizio
10. Quali strategie e’ possibile adottare per
risolvere (eliminare gli effetti) di uno stallo?