Tags:
create new tag
view all tags
SO 26-1-99

Compito di Sistemi Operativi, Prof. Mancini - 26 gennaio 1999


1. (punti: -1,4)

Quali fra le sequenti affermazioni sono corrette:

  1. le transizioni dei processi dallo stato di attesa allo stato di pronto competono alla funzione di gestione del processore. Questa funzione designa di volta in volta il processo pronto selezionandolo tra i processi in attesa;
  2. le transizioni dei processi dallo stato di attesa allo stato di pronto competono alla funzione di gestione del processore. Questa funzione designa di volta in volta il processo in esecuzione selezionandolo tra i processi pronti;
  3. le transizioni dei processi dallo stato di pronto allo stato di esecuzione competono alla funzione di gestione del processore. Questa funzione designa di volta in volta il processo pronto selezionandolo tra i processi in attesa;
  4. le transizioni dei processi dallo stato di pronto allo stato di esecuzione competono alla funzione di gestione del processore. Questa funzione designa di volta in volta il processo in esecuzione selezionandolo tra i processi pronti;
  5. il prerilascio del processore dovuto alla riattivazione di un processo con priorita' superiore a quella del processo in esecuzione fa passare il processo in esecuzione nello stato di pronto;
  6. il prerilascio del processore dovuto alla riattivazione di un processo con priorita' superiore a quella del processo in esecuzione fa passare il processo in esecuzione nello stato di attesa;
  7. nessuna delle affermazioni precedenti e' corretta.
2. (punti: -1,4)

Nel sistema Unix la chiamata di sistema denominata exec eseguita dal processo Pi:

  1. genera un processo Pj che e' una copia di Pi, e restituisce a Pi il file-descriptor di Pj e a Pj l'indice zero. I processi Pi e Pj hanno descrittori e immagini in memoria distinte.
  2. genera un processo Pj che e' una copia di Pi, e restituisce a Pi l'indice zero e a Pj il file-descriptor di Pi. I processi Pi e Pj hanno descrittori e immagini in memoria distinte.
  3. invoca un processo Pj da eseguire e modifica l'immagine in memoria di Pj;
  4. invoca un processo Pj da eseguire e modifica l'immagine in memoria di Pi;
  5. e' invocata specificando un file da eseguire e modifica l'immagine in memoria del processo Pj;
  6. e' invocata specificando un file da eseguire e modifica l'immagine in memoria del processo Pi;
  7. nessuna delle affermazioni precedenti e' corretta.
3. (punti: -1,4)

Quali fra le sequenti affermazioni sono corrette:

  1. in un sistema operativo che ammette processi temporanei sono necessari dei meccanismi per la generazione e la terminazione; i processi sono cosi' strutturati in un reticolo, i cui cammini collegano processi antenati a processi discendenti.
  2. in un sistema operativo che ammette processi temporanei sono necessari dei meccanismi per la generazione e la terminazione; i processi sono cosi' strutturati in un albero, i cui cammini collegano processi antenati a processi discendenti.
  3. in un sistema operativo che ammette processi temporanei non sono necessari dei meccanismi per la generazione e la terminazione; i processi sono cosi' strutturati in un reticolo, i cui cammini collegano processi antenati a processi discendenti.
  4. in un sistema operativo che ammette processi temporanei non sono necessari dei meccanismi per la generazione e la terminazione; i processi sono cosi' strutturati in un albero, i cui cammini collegano processi antenati a processi discendenti.
  5. ogni processo temporaneo e' discendente di uno permanente;
  6. alcuni processi temporanei non sono discendenti di uno permanente;
  7. esistono sistemi operativi dove nessun processo e' temporaneo;
  8. esistono sistemi operativi dove tutti i processi sono temporanei;
  9. nessuna delle affermazioni precedenti e' corretta.
 4. (punti: -1,4)

La gestione differita delle stampe da parte del sistema operativo prende il nome di:

  1. spawn di uscita;
  2. spawn di ingresso;
  3. spool di uscita;
  4. spool di ingresso;
  5. stub di uscita;
  6. stub di ingresso;
  7. swap di uscita;
  8. swap di ingresso;
  9. nessuna delle affermazioni precedenti e' corretta.
5. (punti: 6)

Illustrare in al piu' 60 parole le condizioni necessarie affinche' si verifichi lo stallo.

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
20
P2
9
5
P3
3
12
P4
13
6
P5
7
8

a (punti: 4)

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

b (punti: 2)

Calcolare il valore medio del tempo di attesa dei processi.

c (punti: 2)

Calcolare il valore 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 = 9 3 1 0 5 9 15 3 6 4 5 1 7 4 6 3 1 5 4 15

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: 10)

Utilizzare il costrutto monitor per realizzare lo scambio di messaggi attraverso un vettore circolare.

9. (punti: 8)

Realizzare un Perl script efficiente che legga il contenuto degli archivi passati come parametro e stampi ciascuna linea nello standard output rimuovendo le occorrenze consecutive di caratteri uguali.
 
 


Risultati della prova


1.d,e
2.f
3.b,e,g
4.c


5. Si veda Maestrini p. 257






6.

a) Algoritmo Round Robin con quanto = 4 millisecondi:
 

P1
P3
P1
P5
P3
P2
P1
P4
P5
P3
P2
P1
P4
P1
0-4
4-8
8-12
12-16
16-20
20-24
24-28
28-32
32-36
36-40
40-41
41-45
45-47
47-51

b) media tempo di attesa dei processi: 132/5
c) valore medio del tempo di turnaround dei processi: 183/5


7.

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

 
Pagina riferita

 
9
3
1
0
5
9
15
3
6
4
5
1
7
4
6
3
1
5
4
15
0
9
9
9
9
9
9
9
9
9
9
5
5
5
5
5
3
3
3
3
3
1
 
3
3
3
3
3
15
15
15
15
15
1
1
1
1
1
1
1
1
1
2
   
1
1
1
1
1
3
3
3
3
3
7
7
7
7
7
5
5
5
3
     
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
15
4
       
5
5
5
5
5
4
4
4
4
4
4
4
4
4
4
4
 
p
p
P
p
p
 
P
p
p
p
p
p
p
   
p
 
p
 
p

Numero di page fault: 5+10
 
 

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

 
TurnoMS

  TurnoMS e' inizializzato a 4.
 

 
9
3
1
0
5
9
15
3
6
4
5
1
7
4
6
3
1
5
4
15
0
91
91
91
91
91
91
151
151
151
151
151
150
150
150
150
31
31
30
30
30
1
 
31
31
31
31
31
30
31
30
30
30
11
11
11
11
11
11
51
51
51
2
   
11
11
11
11
10
10
61
61
61
61
60
60
61
61
61
60
60
151
3
     
01
01
01
00
00
00
41
41
41
40
41
41
41
41
40
41
41
4
       
51
51
50
50
50
50
51
50
71
71
71
71
71
70
70
70
 
p
p
P
p
p
 
p
 
p
p
 
p
p
   
p
 
p
 
p

Numero page fault: 5+8


8. Si veda Maestrini p.292


9. La soluzione efficiente richiede una sola linea di codice.

perl -ne 'tr/\0-\377//s; print' archivi


Si ringraziano i volenterosi studenti Alessandro Cagnetti e Daniele Giabbai

Topic revision: r1 - 2001-12-17 - AntonioValletta






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback