Esercizio
Si consideri un sistema che utilizza
tabelle delle pagine a due livelli con dimensione delle pagine di 4 KB e
indirizzi a 32 bit suddivisi in tre
campi da rispettivamente 10, 10 e 12 bit (il campo di 12 bit è ovviamente
l’offset). Calcolare la dimensione della tabella delle pagine di un processo
che ha allocato le seguenti aree di memoria logica:
area 1: locazioni da 0 a 1000000
area 2: locazioni da 4200000 a 5200000
Soluzione
Il numero di pagine fisiche indirizzabili è 2^20, quindi un descrittore
di pagina deve contenere almeno 20 bit per l’indirizzo della pagina fisica
(anche se la dimensione effettiva della mem. fisica è inferiore), più alcuni
bit accessori. Dato che non sono forniti ulteriori dettagli, e che comunque è
bene avere
descrittori che occupino un numero intero di byte, supponiamo per
semplicità che un descrittore di pagina occupi 4 byte.
Una tabella delle pagine di primo livello può indirizzare fino a
2^10=1024 tabelle di secondo livello. Dato che gli indirizzi sono di 32 bit = 4
byte,
una tabella di secondo livello occupa 4KB.
Una tabella delle pagine di secondo livello può indirizzare fino a
2^10=1024 pagine di 4KB ciascuna, per un totale di 4MB. Dato un descrittore
occupa 4 byte,
una tabella di secondo livello occupa 4KB.
L’area 1 necessita della prima tabella delle pagine di secondo livello
dato che occupa uno spazio inferiore a 4MB allocato a partire dall’indirizzo 0.
L’area 2 necessita della sola seconda tabella di secondo livello dato
che occupa uno spazio inferiore a 4MB allocato a partire dall’indirizzo
4200000.
Si osservi che la seconda tabella di secondo livello indirizza memoria compresa
tra 4MB e 8MB.
quindi in totale servono 3 tabelle: una di primo livello e due di
secondo livello per un totale di 12 KB
Esercizio
Si consideri un gestore della memoria basato su swapping che utilizza
una bitmap per rappresentare lo stato di allocazione della memoria.
Supponiamo che la bitmap contenga le seguenti informazioni.
0111110001100
Supponiamo ora che al gestore della memoria arrivino le seguenti
richieste in sequenza:
1- deallocazione del processo allocato che occupa le locazioni 1-3
2- allocazione di un nuovo processo di dim. 1
3- allocazione di un nuovo processo di dim. 4
4- allocazione di un nuovo processo di dim. 4
Supponendo che il gestore della memoria utilizzi politiche di
allocazione best fit, dire come si comporta il gestore della memoria e
come varia il contenuto della bitmap.
Soluzione
1) 0000110001100
2) 0000110001110
3) 1111110001110
4) lo spazio libero è frammentato e non c’è posto per un altro processo
di dim. 4. Ci sono due soluzioni: o si compatta la memoria o
si scaricano uno o più processi su disco.
Esercizio
Data
una memoria partizionata in maniera fissa come segue:
Partizione |
Dimensione |
0 |
200K |
1 |
500K |
2 |
300K |
3 |
600K |
e dato che il sistema operativo deve allocare quattro processi P1 di 212K, P2
di 417K, P3 di 112K e P4 di 427K
(in quest'ordine), scrivere in quale partizione il sistema alloca
ciascun processo se viene usato l'algoritmo:
First Fit
Best Fit
Worst Fit
(se il processo non puo' essere allocato, segnare "X" come
partizione).
Soluzione
Nota: le partizioni sono fisse: non si possono mettere due processi nella
stessa partizione!
First fit: P1:1, P2: 3, P3:0, P4:X
Best fit: P1:2, P2: 1, P3:0, P4:3
Worst fit: P1:3, P2:1, P3:2, P4:X
Esercizio
Si consideri un gestore della memoria basato su swapping che
utilizza una lista per rappresentare lo stato di allocazione della memoria.
Supponiamo che la lista contenga le seguenti informazioni.
(P,0,12)->(H,12,5)->
(P,17,6)->(H,23,15)->(P,38,5)->(H,43,12)-> (P,55,10) -> (H,65,8)
Il simbolo “P” denota una partizione di memoria occupata da un
processo, mentre il simbolo “H” denota una partizione di memoria libera,
il primo numero indica il blocco di partenza, il secondo numero il numero
di blocchi allocati al processo .
Supponiamo ora che al gestore della memoria arrivino in tempi
successivi due richieste di allocazione di memoria per tre processi,
il primo di dimensione 7, il secondo di dimensione 10, il terzo di
dimensione 1.
Dire come si comporta il gestore della memoria nel caso utilizzi la
politica di allocazione
best fit
first fit
worst fit
Mostrare in tutti i casi la lista di allocazione della
memoria risultante.
Soluzione:
Il best fit seleziona per il primo processo l’area (H, 65,8 ) e per il
secondo processo l’area (H,43,12) e
per il terzo processo seleziona l’area (H,72,1) rimasta dopo
l’allocazione dei primi due per cui la lista diventa
(P,0,12)->(H,12,5)->
(P,17,6)->(H,23,15)->(P,38,5)->(P,43,10)-> (H,53,2) -->
(P,55,10) -> (P,65,7)-> (P,72,1)
Il first fit seleziona per il primo processo l’area (H,23,15) e per il
secondo processo l’area (H,43,12) e per il terzo
L’area (H,12,5) per cui la lista diventa
(P,0,12)->(P,12,1)->(H,13,4)->
(P,17,6)->(P,23,7)->(H,30,8)->(P,38,5)->(P,43,10)->(H,53,2)->
(P,55,10) -> (H,65,8)
Il worst fit seleziona per il primo processo l’area (H,23,15) e per il
secondo processo l’area (H,43,12) e per il terzo
l’area (H,30,8) rimasta dopo l’allocazione dei primi due per cui la
lista diventa
(P,0,12)->(H,12,5)->
(P,17,6)->(P,23,7)->(P,30,1)->(H,31,7)->(P,38,5)->(P,43,10)->(H,53,2)->
(P,55,10) -> (H,65,8)
Esercizio
Si consideri un sistema con 8 pagine di mem. fisiche sul quale sono
attivi tre processi A, B e C. Si supponga che all’istante 1000 siano caricate
le pagine:
processo
pag. logica
pag.
fisica
istante di caricamento riferita
A
0
7
500
SI
A
8
6
480
NO
A
5
5
300
SI
B
5
4
970
NO
B
6
0
120
SI
C
2
2
765
NO
C
5
1
900
NO
C
9
3
212
NO
Supponendo che il sistema utilizzi un algoritmo di sostituzione second
chance, dire cosa avviene nei seguenti casi:
second chance GLOBALE, C riferisce la pagina logica 5
second chance GLOBALE, A riferisce la pagina logica 3
Soluzione:
La lista delle pagine per l’algoritmo second chance GLOBALE è
B6(120,SI)->C9(212,NO)->A5(300,SI)
->A8(480,NO)->A0(500,SI)->C2(765,NO)->C5(900,NO)->B5(970,NO)
Quindi le risposte sono:
1.) La pagina C5 è già in memoria (nella pagina fisica 1) e quindi
viene marcata come riferita
2.) La pagina logica A3 non è in memoria, l’algoritmo second chance
esamina B6, siccome è stata riferita, viene inserita in testa alla lista ed
il campo riferita viene resettato, quindi
viene esaminata C9, che viene eliminata, la lista risultante è
A5(300,SI) ->A8(480,NO)->A0(500,SI)->C2(765,NO)->C5(900,NO)->B5(970,NO)
)->B6(120,NO)->A3(1000,SI)
Esercizio
Si consideri un processo attualmente in esecuzione, il cui contenuto
della memoria associativa nella MMU e la tabella delle
pagine siano rispettivamente:
MEM. Associativa:
valido pag.
logica
modificata
protezione
riferita pag. fisica
1
7
SI
RW
SI 7
1
5
NO
R
SI 8
0
4
NO
RW
SI 5
Tab. delle pagine:
pag.
logica pag.
fisica
modificata
protezione
riferita presente/assente
……………………………
4
5
NO
RW
NO SI
5
8
NO
R
SI SI
6
6
SI
RW
NO SI
7
7
SI
RW
NO SI
8
-
NO
RW
NO NO
…………………………..
analizzando ognuno dei seguenti casi in modo INDIPENDENTE DAGLI ALTRI,
dire quali eccezioni vengono sollevate, come si comporta il sistema
e come variano le due tabelle:
1- il processo effettua
uno accesso in scrittura alla pagina logica 5
2- il processo effettua uno accesso in scrittura alla pagina logica 4
3-il processo
effettua uno accesso in lettura alla pagina logica 8
Soluzione
1) il descrittore della pagina 5 è caricato nella mem. associativa,
quindi si traduce l’indirizzo. Siccome l’accesso è in scrittura ma l’accesso
alla pagina
è consentito in sola lettura viene generata un’eccezione che provocherà il
fallimento del processo.
2) il descrittore della pagina 4 non è caricato nella mem. associativa,
quindi viene generata un’eccezione di indirizzo, si accede alla tabella delle
pagine,
si scopre che la pagina 4 è caricata in memoria, quindi si carica il
descrittore della pag. 4 in mem. associativa e si marca la pag. 4
come modificata e riferita nella mem. associativa che quindi diventa:
valido pag.
logica
modificata
protezione
riferita pag. fisica
1
7
SI
RW
SI 7
1
5
NO
R
SI 8
1
4
SI
RW
SI 5
La tabella delle pagine resta invariata.
3) il descrittore della pagina 8 non è caricato nella mem. associativa,
quindi viene generata un’eccezione di indirizzo, si accede alla tabella delle
pagine,
si scopre che la pagina 8 NON è caricata in memoria, quindi si genera un page
fault.
Al termine del page fault verrà aggiornato il descrittore della pagina
8 nella tabella delle pagine e verrà caricato il descrittore nella memoria
associativa.
Esercizio
Considerare
la seguente stringa di riferimenti alla memoria di un processo in un sistema
con memoria virtuale
S = 10 6 2 4 6 8 3 1 4 5 11 8 7 6
10 9 7 8 11 2
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.
Soluzione
Rif. |
10 |
6 |
2 |
4 |
6 |
8 |
3 |
1 |
4 |
5 |
11 |
8 |
7 |
6 |
10 |
9 |
7 |
8 |
11 |
2 |
1 |
10 |
10 |
10 |
10 |
10 |
10 |
3 |
3 |
3 |
3 |
3 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
2 |
|
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
5 |
5 |
5 |
5 |
5 |
10 |
10 |
10 |
10 |
10 |
2 |
3 |
|
|
2 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
4 |
|
|
|
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
6 |
6 |
6 |
6 |
6 |
11 |
11 |
5 |
|
|
|
|
|
8 |
8 |
8 |
8 |
8 |
11 |
11 |
11 |
11 |
11 |
9 |
9 |
9 |
9 |
9 |
Page Fault |
* |
* |
* |
* |
|
* |
* |
* |
|
* |
* |
* |
* |
* |
* |
* |
|
|
* |
* |
In neretto: pagina selezionata
Numero di page fault: 16
Esercizio
Considerare la seguente stringa di riferimenti alla memoria di un processo
in un sistema con memoria virtuale
S = 20 18 15 10 6 2 15 18 20 6 10 11 8 6 10 9 7 8 11 2 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.
Soluzione
Pagina Riferita
|
20 |
18 |
15 |
10 |
6 |
2 |
15 |
18 |
20 |
6 |
10 |
11 |
8 |
6 |
10 |
9 |
7 |
8 |
11 |
2 |
0 |
20 |
20 |
20 |
20 |
20 |
2 |
2 |
2 |
2 |
2 |
10 |
10 |
10 |
10 |
10 |
10 |
10 |
10 |
10 |
2 |
1 |
|
18 |
18 |
18 |
18 |
18 |
18 |
18 |
18 |
18 |
18 |
18 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
2 |
|
|
15 |
15 |
15 |
15 |
15 |
15 |
15 |
15 |
15 |
11 |
11 |
11 |
11 |
11 |
7 |
7 |
7 |
7 |
3 |
|
|
|
10 |
10 |
10 |
10 |
10 |
20 |
20 |
20 |
20 |
20 |
20 |
20 |
9 |
9 |
9 |
9 |
9 |
4 |
|
|
|
|
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
11 |
11 |
5 + 9 = 14 page fault
Esercizio
Considerate la seguente lista circolare associata alle pagine utilizzate dal
processo A:
(P1, 10, 1, 0) --> (P2, 9, 0, 0) --> (P3, 5, 0, 1)
--> (P4, 7 ,0, 0 ) --> (P5, 11 ,0, 1 )
------------------------------------------------------------------------------------
|
dove in ogni tupla (N,T,R,M): N=Numero della pagina; T=Tempo di ultimo
uso; R=Reference bit; M=Modified bit.
Supponete che il processo A abbia bisogno di caricare la pagina P6 e che
occorra rimpiazzare una delle pagine esistenti.
Determinare la pagina selezionata per il rimpiazzamento e la nuova lista delle
pagine ottenuta utilizzando l'algoritmo WSClock
con le seguenti assunzioni:
- contatore del tempo virtuale di CPU del processo A = 12;
- periodo del working set =4;
- la lancetta punta inizialmete a P1.
Soluzione:
Viene selezionata la pagina P4 (P1 e P2 sono nel ws, P3 ha il bit M a 1).
La nuova lista e'
(P1, 10, 0, 0) --> (P2, 9, 0, 0) --> (P3, 5, 0, 0*) --> (P6,
12 ,1, 0 ) --> (P5, 11 ,0, 1 )
|
0*= se supponiamo che la copia su disco vada a buon fine.
Esercizio
Si considerino tre processi (A, B e C), che hanno rispettivamente 3, 3
e 4 pagine logiche caricate in altrettante pagine fisiche della memoria.
Per ogni pagina, l’istante di tempo dell’ultimo riferimento è riassunto
dalla seguente tabella:
Processo
Pagina fisica istante ultimo riferimento
A
0
10
A
2
2
A
4
13
B
1
3
B
9
12
B
8
5
C
7
8
C
3
11
C
6
6
C
5
4
Si supponga inoltre che non siano rimaste pagine libere in memoria.
Dire quale pagina verrebbe rimossa dall’algoritmo di sostituzione se
all’istante 14 avviene un page fault:
causato da C, e il gestore della memoria utilizza l’algoritmo di
sostituzione LRU
causato da B, e il gestore utilizza l’algoritmo di sostituzione LRU
causato da C, e il gestore utilizza l’algoritmo di sostituzione Working
Set con parametro di anzianità 8
causato da B, e il gestore utilizza l’algoritmo di sostituzione Working
Set con parametro di anzianità 8
Soluzione
Page fault causato da C con LRU: viene selezionata la pagina 2
(allocata al processo A)
Page fault causato da B con LRU: viene selezionata la pagina 2
(allocata al processo A)
Page fault causato da C con WS: viene selezionata la pagina 5 (allocata
al processo C)
Page fault causato da B con WS: sono fuori dal working set sia la
pagina 1 che la 8 (allocate entrambe al processo B).
L’algoritmo di sostituzione ne seleziona una delle due in base
all’ordine con il quale le analizza.