Offset di Pagina Spiegato: Fondamenti di Gestione della Memoria
Cos'è un Offset di Pagina?
Nella gestione della memoria del computer, un offset di pagina (o spostamento di pagina) specifica la distanza — misurata in byte — dall'inizio di una pagina di memoria a un byte specifico all'interno di quella pagina. È un concetto fondamentale nei sistemi di memoria virtuale che usano la paginazione per l'allocazione di memoria.
Pagine e Frame: Il Fondamento
La memoria virtuale divide lo spazio di indirizzamento di un processo in pagine di dimensione fissa (tipicamente 4 KB). La RAM fisica è divisa in altrettanto grandi frame. L'unità di gestione della memoria (MMU) mappa le pagine virtuali ai frame fisici tramite una tabella delle pagine.
Come Funzionano gli Offset di Pagina
Un indirizzo virtuale si divide in due parti:
- Numero di pagina (VPN): Indicizza la tabella delle pagine per trovare il numero di frame fisico
- Offset di pagina: Identifica il byte esatto all'interno della pagina/frame
Poiché pagine e frame hanno la stessa dimensione, l'offset rimane invariato durante la traduzione. Per una pagina di 4 KB (212 byte), i 12 bit inferiori di un indirizzo virtuale rappresentano l'offset; i bit superiori rappresentano il numero di pagina.
Esempio Concreto
Considera un sistema a 32 bit con pagine da 4 KB:
- Indirizzo virtuale:
0x00401234 - Dimensione pagina: 4 KB = 4096 byte = 212
- Bit di offset: 12 bit (0x234 = 564 byte nella pagina)
- Numero di pagina: 0x00401 (bit superiori 20)
Se la pagina 0x00401 è mappata al frame fisico 0x007A2, l'indirizzo fisico diventa 0x007A2234 — stesso offset, base di frame diversa.
Perché gli Offset di Pagina Contano
- Traduzione indirizzo: L'MMU combina indirizzo base del frame + offset per l'indirizzo fisico
- Allineamento cache: Gli offset determinano il posizionamento delle linee di cache
- Protezione memoria: Il controllo dei limiti di offset previene l'overflow di pagina
- Memoria condivisa: Più processi possono mappare lo stesso frame con offset diversi
Altri Contesti
Il termine appare altrove con significati diversi:
- Impaginazione documento: Distanza dal margine di pagina a un elemento di contenuto
- File system: Posizione byte all'interno di un blocco/settore disco
- Networking: Offset del payload all'interno di un pacchetto o frame
Sommario
L'offset di pagina collega indirizzamento virtuale e fisico localizzando i dati all'interno di una pagina di frame a dimensione fissa. La sua invarianza durante la traduzione dell'indirizzo è ciò che rende la paginazione efficiente — solo il numero di pagina richiede lookup; l'offset passa attraverso invariato.