Sistemi Operativi
Prima prova scritta 3 Aprile 2002
1. In un sistema con thread
a livello utente esiste uno stack per ogni thread o uno stack per processo?
Cosa succede se i thread sono a livello kernel? Spiegare.
2. Si definiscano i seguenti termini:
(a) Race condition
(b) Starvation
(c) Deadlock
3. Che cos'e' il problema
dei cinque filosofi? Si descriva come i cinque filosofi possano entrare
in deadlock.
4. Si scriva in C o in pseudocodice
l'algoritmo dei 5 filosofi.
5. Un sistema ha quattro processi e cinque risorse allocabili. L'allocazione corrente e il massimo fabbisogno sono i seguenti:
Allocati Massimo Disponibili
Processo A 0 2 1 2 1 1 2 1 3 1 0 x 1 1 0
Processo B 0 1 1 0 2 2 2 1 0 2
Processo C 1 0 1 0 1 1 3 1 0 2
Processo D 1 1 1 0 1 1 2 2 1 1
Qual è il più
piccolo valore di x per il quale questo è uno stato sicuro?
6 Si discuta la system call
clone di Linux.
7. Un sistema ha due processi
e tre risorse identiche. Ogni processo ha bisogno al massimo di due risorse.
Può comparire il deadlock? Spiegare la risposta.
8. In un certo sistema il
processo medio viene eseguito per un tempo pari a T=100ms prima di bloccarsi
per un'operazione di ingresso/uscita. Un cambio di contesto richiede un
tempo S=30ms, che viene di fatto sprecato (overhead). Per uno schedulatore
round robin con quanto Q=40ms, calcolare l'efficienza della CPU.
9. Descrivere la differenza
fondamentale tra una trap e un'interruzione.
10. A cosa serve la tabella
dei processi in un sistema timesharing? È ugualmente necessaria
nel sistema operativo di un personal computer in cui esiste un solo processo,
e quel processo prende il controllo dell'intera macchina fino al suo completamento?