1. Spiegare la differenza in tra mutex e critical
sections in Windows 2000.
2. Quali delle seguenti affermazioni sono vere o false? Motivare le risposte.
a)
l’algoritmo
del banchiere viene utilizzato per verificare se uno stato è sicuro o meno.
b)
l’algoritmo
del banchiere non si applica a risorse prerilasciabili.
c)
un
sistema in uno stato insicuro è in stallo.
d)
un
sistema in uno stato insicuro potrebbe non essere attualmente in stallo ma
andrà sicuramente in stallo in futuro.
e)
tutti
i processi di un sistema in stato insicuro possono comunque terminare.
f)
non è
possibile andare da uno stato sicuro ad uno stato insicuro a prescindere dalla
quantità e qualità di risorse richieste da un processo.
3. Che cos'e' il
problema dei filosofi a cena? Si descriva come i filosofi possano entrare in deadlock.
4. Si scriva in C o
in pseudocodice l’algoritmo dei filosofi a cena.
5. Supponiamo di
ricevere 4 job (JA, JB, JC, JD) tali che:
job Tempo
stimato Tempo di arrivo
JA 23 0
JB 20 15
JC 15 19
JD 16 12
Calcolare il tempo di
completamento di ogni job ottenuto con lo scheduling SJF (Shorter Job First) e
lo scheduling Round-Robin con quanto di tempo 9 e tempo di commutazione di
contesto pari a 1.
SECONDA PARTE
6. Si supponga
di gestire una memoria di 2000K per mezzo di paginazione con dimensione
di pagine di 100K e 200K. Si descriva l’allocazione di memoria conseguente, a
fronte di una sequenza di quattro processi, P1, P2, P3 e
P4, che necessitano, rispettivamente, di 212K, 417K, 112K, 426K. A quanti KB
ammontano nei due casi la
frammentazione interna e la memoria libera ?
7. Descrivere l’algoritmo di sostituzione di
pagine WSClock.
8. Quali sono le informazioni tipicamente
contenute in un superblock ?
9. Cos’e’ il sistema di memorizzazione
stabile (stable storage) ?
10. Spiegare la funzione e i parametri della
system call open di Unix.