-
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 principale; 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