Svolgimento
Esercizio 4
Abbiamo uno spazio di indirizzamento di 16 bit con pagine di 4K.
Essendo la dimensione della memoria di 64K ( 2^16) abbiamo lo spazio di memoria logica diviso in 16 pagine (= 64K/4K).
Nella figura sotto vediamo come è suddiviso lo spazio di memoria e gli indirizzi delle diverse pagine:
Essendo 16 le pagine, bastano 4 bit per il numero di pagina quindi:
i successivi 12 bit, dell'indirizzo di 16 bit, rappresentano l'offset (scostamento) all'interno della singola pagina (di 4K).
Quindi gli indirizzi all'interno della pagina vanno da:
L'indirizzo logico è composto così:
dove N_PAGINA
nel nostro caso va da 0 a 15 e OFFSET
va da 0 a 4095 (avendo pagine da 4K e 16 pagine totali).
Fatta questa premessa dato un indirizzo logico, i primi 4 bit, della rappresentazione binaria, rappresentano il numero di pagina e i successivi 12 bit, rappresentano l'offset (scostamento) all'interno della pagina.
Ipotizzando la seguente tabella della pagine del nostro processo:
Cioè alla pagina 0, corrisponde il frame 10, alla pagina 1 il frame 7, ecc...
Calcoliamo ora l'indirizzo fisico corrispondente all'indirizzo logico 10344 in base decimale:

Vediamo che 10344 corrisponde alla codifica binaria: 0010_1000_0110_1000
, quindi il numero di pagina è 2 (0010
) e l'offset è 1000_1000_0110_1000
.
Dalla tabella della pagine vediamo che alla pagina 2 corrisponde al frame 9, quindi l'indirizzo logico sarà 1001
(9 in binario) la parte del numero del frame e l'offset identico 1000_1000_0110_1000
; quindi l'indirizzo fisico è:1001_1000_1000_0110_1000
, corrispondente a 39016 in decimale.
Infatti come verifica si può vedere che 10344 può essere scomposto in (2 * 4096) + 2152, dove 2 è il numero di pagine e 2152 l'offset. Quindi l'indirizzo fisico sarà (9 * 4096) + 2152) = 39016.
Esercizio 6
Dimensione memoria programma 300 MB sapendo che la memoria ha pagine di 4 KB, quanto occupa come memoria la page table, sapendo che ogni riga dalla page table è di 4 byte?
Per trovare quante pagine occupa il processo:
300 MB / 4 KB = (300 * 2^20) / ( 4 * 2^10) = 75 * 2^10 pagine
Quindi la tabella sarà composta da 75 K righe.
Siccome ogni riga della tabella è di 4 byte, allora la tabella delle pagine occupa:
75 * 2^10 * 4 byte = 300 KB.
Last updated
Was this helpful?