Corso di Laurea in Informatica Applicata

La Spezia

16 Giugno 2004

Sistemi Operativi

Prova Scritta


PRIMA PARTE

1. Introdurre i monitor nel contesto della comunicazione tra processi.

2. Si scriva in pseudo-Pascal una soluzione per il problema produttore-consumatore usando i monitor.

3. Siano dati i seguenti processi, con i relativi tempi di esecuzione (T.E.) e di arrivo nel sistema (T.A.)

T.E. T.A.
P1  10    0
P2  20    0
P3   5    7
P4  60   15

Graficare l’andamento temporale dei processi supponendo di adottare una politica
di schedulazione Short Job First (S.J.F), calcolare il tempo di turnaround medio e
confrontarlo con quello ottenibile con una politica di tipo F.C.F.S.

4. In quale situazione un processo di UNIX va in stato zombie ?

5. Quali sono i principali approcci per prevenire gli stalli?


SECONDA PARTE

6. Si consideri un disco in cui ogni traccia ha 50 settori, di cui 45 vengono utilizzati per i dati (e di conseguenza numerati da 0 a 44), mentre 5 settori (dal 45 al 49) restano di riserva per sostituire eventuali settori difettosi.
Supponiamo che all'atto della formattazione a basso livello i settori 7, 9 e 25 della traccia 1 risultino difettosi e che vengano riallocati rispettivamente sui settori di riserva 45, 46 e 47.
Se successivamente viene richiesta una operazione di lettura sul disco dei settori da 4 a 20 della traccia 1 mentre il disco transita sul settore 3 della stessa traccia, quanti settori deve attraversare la testina per completare la lettura?
Spiegare quale è la tecnica di allocazione dei settori difettosi che permette di migliorare il tempo di completamento della stessa lettura, dire in quale contesto può essere utilizzata, e calcolare quanti settori dovrebbe attraversare la testina per completare l'operazione di lettura se i settori difettosi fossero riallocati in base a tale tecnica.

7. Descrivere l’algoritmo di sostituzione di pagine di Windows 2000.

8.
9. Quali sono le principali tecniche adottate nei file system per ridurre il movimento del braccio del disco ?

10. Descrivere l’implementazione della TLB in software e le possibili ottimizzazioni della sua gestione.