-

Compito di Sistemi Operativi, Prof. Mancini - 2 giugno 1999


1. (punti: -1,4)

La primitiva hP (hardware P):

 

(a)    utilizza un semaforo ed è invocata dal processo esterno che rappresenta un dispositivo fisico quando la corrispondente interruzione è riconosciuta dal sistema di interruzione;

(b)   utilizza un semaforo e non è invocata dal processo esterno che rappresenta un dispositivo fisico quando la corrispondente interruzione è riconosciuta dal sistema di interruzione;

(c)    utilizza un semaforo ed è invocata dal processo di controllo associato ad un dispositivo fisico con il meccanismo basato sull'istruzione TRAP;

(d)   utilizza un semaforo ed è invocata dal processo di controllo associato ad un dispositivo fisico quando la corrispondente interruzione è riconosciuta dal sistema di interruzione;

(e)    non utilizza un semaforo ed è invocata dal processo esterno che rappresenta un dispositivo fisico quando la corrispondente interruzione è riconosciuta dal sistema di interruzione;

(f)     non utilizza un semaforo ed è invocata dal processo di controllo associato ad un dispositivo fisico con il meccanismo basato sull'istruzione TRAP;

(g)    non utilizza un semaforo ed è invocata dal processo di controllo associato ad un dispositivo fisico quando la corrispondente interruzione è riconosciuta dal sistema di interruzione;

(h)  nessuna delle affermazioni precedenti è corretta.

 

2. (punti: -1,4)

 

Ogni operazione di lettura da un dispositivo di tipo Direct Memory Access (DMA):

 

(a)    permette ad un processo utente di eseguire in modo controllato un accesso diretto in lettura alla memoria principale, scavalcando eventuali unità di gestione della memoria (MMU);

(b)   trasferisce un singolo carattere dal dispositivo ad un area designata nella memoria principale; il controllore DMA del dispositivo invia una interruzione (segnale DReady) per ogni carattere trasferito;

(c)    non trasferisce un singolo carattere dal dispositivo ad un area designata nella memoria prin­cipale; il controllore DMA del dispositivo invia una interruzione (segnale DReady) per ogni carattere trasferito;

(d)   trasferisce un blocco di dati dal dispositivo ad un area designata nella memoria principale; il controllore DMA del dispositivo invia una interruzione (segnale DReady) solo a comando eseguito;

(e)    trasferisce un blocco di dati dal dispositivo ad un area designata nella memoria principale; il controllore DMA del dispositivo invia una interruzione (segnale DReady) per ogni carattere trasferito;

(f)     nessuna delle affermazioni precedenti è corretta.

 

3. (punti: -1,4)

Una struttura dati "i-node" del sistema di archiviazione di Unix è associata ad un archivio F. Il campo "link"  (numeroCollegamenti) di questo i-node contiene:

(a)      il puntatore alla posizione corrente nell'archivio F;

(b)     un contatore che registra la cardinalità dell'insieme di processi che stanno utilizzando l' archivio F;

(c)      un contatore che registra la cardinalità dell'insieme di direttori dai quali è possibile accedere all'archivio F;

(d)     un contatore che registra la cardinalità dell"insieme di elementi nella "tabella dei collegamenti" che riferiscono l'i-node dell'archivio F;

(e)      un contatore che registra la cardinalità del gruppo di utenti del quale fa parte il proprietario dell'archivio F;

(f)       il modo con il quale l'archivio F è stato aperto;

(g)      nessuna delle affermazioni precedenti è corretta.

 

4. (punti: -1,4)

L insieme di lavoro (working set) WS(t, d) di un processo P al tempo virtuale t è definito come:

(a)      l'insieme delle pagine fisiche di memoria virtuale accessibili da P al tempo t;

(b)     l'insieme delle pagine dell'intera memoria virtuale marcate come riferite all istante t. ma non accedute da P;

(c)      l'insieme delle pagine fisiche di memoria virtuale staticamente allocate e al sistema operativo;

(d)     l'insieme delle pagine riferite da P nell'intervallo (t - d, t];

(e)      l'insieme delle pagine riferite da P nell'intervallo (t, t + d];

(f)       l'insieme delle pagine vittime che sono state rimosse nell'intervallo (t - d, t];

(g)      l'insieme delle pagine vittime che sono state rimosse nell'intervallo (t, t + d];

(h)      nessuna delle affermazioni precedenti è corretta.

 

5. (punti: 6)

Illustrare in al più 60 parole la chiamata di sistema denominata fork del sistema operativo Unix.

 

6. (punti: 6)

Considerare un insieme di cinque processi P1, P2, P3 , P4, P5 con i seguenti tempi di arrivo e tempi di esecuzione in millisecondi:

 

Processo

Tempo di arrivo

Tempo di esecuzione

P1

0

19

P2

9

11

P3

3

9

P4

5

5

P5

13

8


 

Assegnare questo insieme di processi ad un processore in base alla politica Round Robin considerando un quanto di tempo  di 4 millisecondi.

 

Calcolare il valor medio del tempo di attesa ed il valor medio del tempo di turnaround dei processi.

 

7. Considerare la seguente stringa di riferimenti di un processo alla memoria in un sistema con memoria virtuale

 

S=5 2 1 8 7 4 6 3 1 5 9 3 1 0 5 9 1 6 3 4

 

(a)  (punti: 3)

 

Illustrare il comportamento dell'algoritmo LRU di sostituzione delle pagine per una memoria fisica di 5 blocchi. Calcolare il numero di page fault che si verificano.

 

(b)  (punti: 3)

 

Illustrare il comportamento dell'algoritmo Second Chance di sostituzione delle pagine per una memoria fisica di 5 blocchi. Calcolare il numero di page fault che si verificano.

 

8. (punti: 9)

Utilizzare le primitive P e V sui semafori per realizzare le primitive delay(cond) e continue(cond) definite nel costrutto monitor introdotto da Hoare;

9. (punti: 9)

L archivio file1 contiene una sequenza ordinata di stringhe, mentre l archivio file2 contiene una sequenza ordinata di coppie di stringhe (nome1, nome2). Realizzare un programma Perl efficiente che restituisce in standard output gli elementi di file1 modificati come segue: la prima occorrenza in file1 di nome di file2 è sostituita con la corrispondente stringa nome2 di file2.
 
 


Risultati della prova


1. f
2. d
3. g
4. d

5.

Tramite la fork,un processo Pi può generare un processo figlio Pj . All'atto della generazione del processo fork copia l'immagine in memoria di Pi in Pj e le prossime istruzioni di Pj e Pi puntano al medesimo indirizzo logico. Se ha esito positivo: la fork restituisce a Pi l'indice di Pj e a Pj  il valore 0.


6.

a)  

P1

P3

P1

P4

P3

P2

P1

P5

P4

P3

P2

P1

P5

P2

P1

0-4

4-8

8-12

12-16

16-20

20-24

24-28

28-32

32-33

33-34

34-38

38-42

42-46

46-49

49-52

b) media tempo di attesa dei processi: ((52-0)+(49-9)+(34-3)+(33-5)+(46-13))/5 = 184/5
c) valore medio del tempo di turnaround dei processi: ((52-19)+(40-11)+(31-9)+(28-5)+(33-8))/5 = 132/5


7.

a: Algoritmo LRU (pag. 469 del Maestrini):

 

 

 

 LRU

5

2

1

8

7

4

6

3

1

5

9

3

1

0

5

9

1

6

3

4

0

5

5

5

5

5

4

4

4

4

4

9

9

9

9

9

9

9

9

9

9

1

 

2

2

2

2

2

6

6

6

6

6

6

6

0

0

0

0

0

3

3

2

 

 

1

1

1

1

1

3

3

3

3

3

3

3

3

3

3

6

6

6

3

 

 

 

8

8

8

8

8

1

1

1

1

1

1

1

1

1

1

1

1

4

 

 

 

 

7

7

7

7

7

5

5

5

5

5

5

5

5

5

5

4

 

p

p

p

p

p

p

p

p

p

p

p

 

 

p

 

 

 

p

p

p

b: Algoritmo Second Chance: (pag. 473 del Maestrini)

 TURNOMS=4

 

TurnoMS

 

SC 

5

2

1

8

7

4

6

3

1

5

9

3

1

0

5

9

1

6

3

4

0

51

51

51

51

51

41

41

41

41

41

91

91

91

91

91

91

91

90

90

90

1

 

21

21

21

21

20

61

61

61

61

60

60

60

01

01

01

01

00

00

00

2

 

 

11

11

11

10

10

31

31

31

30

31

31

31

31

31

31

61

61

61

3

 

 

 

81

81

80

80

80

11

11

10

10

11

11

11

11

11

10

31

31

4

 

 

 

 

71

70

70

70

70

51

50

50

50

50

51

51

51

50

50

41

 

p

p

p

p

p

p

p

p

p

p

p

 

 

p

 

 

 

p

p

p

 


8. Si veda Maestrini Tab. 7.5, p. 291

 

- 2 giugno 1999 - Compito del 16 giugno 1999