Esercizio 1. 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:
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 2: 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:
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 4. 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.
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 5. 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 6. Dato un file system FAT con blocchi di 4KB (4096 byte) e il seguente frammento di FAT, dire in quali blocchi fisici sono collocati i seguenti byte:
1. byte 6758 del file che inizia al blocco 33
2. byte 8192 del file che inizia al blocco 34
3. byte 4094 del file che inizia al blocco 34
frammento di FAT :
blocco fisico contenuto della FAT
…..
30 31
31 37
32 36
33 32
34 35
35 30
36 40
37 41
…..
Soluzione
1) il byte 6758 sta nel blocco logico 1, quindi il blocco fisico è 32
2) il byte 8192 sta nel blocco logico 2, quindi il blocco fisico è 30
3) il byte 4094 sta nel blocco logico 0, quindi il blocco fisico è 34
Esercizio 8. Fornire il contenuto dell'i-node e del blocco relativo alla directory `tool' di un file system Unix V7 nel seguente caso :
(si assume che
file e directory nella gerarchia indicata occupino un solo
blocco,accanto ad
ogni file o directory è indicato il numero di i-node (I=…)
e il numero del
blocco (b=…))
Contenuto dell’i-node numero 7
(attributi vari)
100 (indirizzo primo blocco dati)
Contenuto del blocco 100
Numero di i-node Nome file/directory
7 . (punto)
1 . . (punto punto)
83 src
4 c
156 d
99 a
Esercizio 9. Elencare i controlli principali effettuati dal comando unix fsck
Soluzione
1) Verifica la consistenza dei blocchi
–scandisce gli i-node e blocchi liberi:
–costrisce tabella blocchi liberi e tabella blocchi in uso
• un blocco che non è nè libero nè allocato lo aggiunge alla lista libera
• un blocco che compare due volte nella lista libera (ammesso che si usi lista libera e non bitmap) lo aggiunge alla lista libera
•un blocco allocato da due file distinti lo duplica per avere una copia diversa in ciascun file
2) Verifica la consistenza delle directory
–scandisce le directory e conta l’occorrenza di ogni file o directory
–controlla la consistenza fra le occorrenze ed il conto degli hard link nell’i-node
Esercizio 10. Dato
un file
system NTFS con blocchi di dimensione 4KB, e il seguente MTF record del
file
Pippo, individuare
i blocchi fisici nei quali sono contenuti i seguenti byte
del file A:
1. 5672
2. 47657
3. 61000
Soluzione
1- il blocco logico è 1, quindi si tratta del secondo blocco del primo run, per cui l’indirizzo del blocco fisico è 38
2- il blocco logico è 11, quindi si tratta del quarto blocco del terzo run, per cui l’indirizzo del blocco fisico è 90
3- il blocco logico è il 14, quindi si tratta del primo blocco del quarto run, per cui l’indirizzo del blocco fisico è 51