Con riferimento ad un ambiente di gestione della memoria virtuale con paginazione su richiesta, si consideri un processo caratterizzato dalla seguente stringa di riferimenti
1 0 3 5 6 9 1 19 15 18 9 15 1 3 5 1 9 19 3
Si illustri il comportamento degli algoritmi FIFO e LRU nel caso siano assegnati al processo 5 frame. Si calcoli il numero di page faults
Supponiamo che il sistema di paginazione usato dal S.O. assegni 3 frame da 512B a ciascun processo e si consideri il seguente programma
…
#define N 512
int A[N], C[N];
int i,j;
…
for(i=1; i<=2; i++)
for(j=0; j<N/2; j++)
A[i*j] = A[2*i] + C[2*j];
…
Gli array A e C occupano 1024B ciascuno, suddivisi in 2 pagine da 512B come segue:
Nei due casi precedenti:
qual’e’ il tempo di accesso effettivo della paginazione su richiesta se il tempo medio di servizio e’
FIFO → p=5/1536 = 0.0032
EAT = 0.9968 x 100*10-6 + 0.0032 x 25000*10-6 = 179.68 *10-6 sec
LRU → p=4/1536 = 0.0026
EAT = 0.9974 x 100*10-6 + 0.0026 x 25000*10-6 = 164.74 *10-6 sec
Considerare la seguente successione di riferimenti di pagine:
1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 3, 2, 7, 6, 3, 2, 1, 2, 3, 6.
E si supponga che l’accesso alle pagine 1, 2 , 3 sia sempre in scrittura.
Implementazione mediante un bit di accesso. (bit=1 se referenziata)
Si scorrono le pagine presenti nella lista:
Se bit=1 :
Se bit=0
Data la seguente sequenza di riferimenti di pagine
1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 3, 2, 7, 6, 3, 2, 1, 2, 3, 4
Determinare quanti page fault avvengono utilizzando il clock algorithm con 5 frame e lancetta dell’orologio posizionata sul primo elemento
Il working set di un processo W(t, w), e’ l’insieme delle pagine referenziate dal processo nell’intervallo di tempo [t – w , t ]
Si studi l’andamento dell’algoritmo basato su working set W(t,w) con w=5 per la seguente stringa di riferimento alle pagine di memoria e si determini la minima e la massima dimensione del w.s.
1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6
Determinare il numero di p.f. per l’algoritmo del working set con w=5 per le seguenti stringhe di riferimenti
S1
1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6
S2
1, 4, 1, 3, 2, 6, 1, 2, 3, 5, 4, 2, 3, 2, 4, 6, 5, 6, 1, 5, 3
Si osservi: In entrambi casi
4 riferimenti alle pagine 1, 2 e 3
3 riferimenti alle pagine 4, 5 e 6
Supponiamo che il sistema di paginazione utilizzato dal sistema operativo assegni 3 frame (blocchi di memoria) da 512B a ciascun processo e che l’algoritmo di sostituzione delle pagine sia LRU.
Prendiamo in considerazione il seguente programma:
…
#define N 512
int a[N];
int i;
…
for (i=0; i < N/2; i++)
a[i] = a[2*i] + a[N-i-1];
…
Si risponda ai seguenti quesiti:
In un s.o. con paginazione su richiesta occorrono:
Supponendo che il 70% delle volte e’ necessario salvare la pagina avvicendata, determinare il massimo valore del p.f. rate p per ottenere un EAT al piu’ di 200 nsec
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
14. Gli algoritmi di avvicendamento delle pagine
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system