Corso di Laurea in Informatica Applicata - La Spezia

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?