Nell'architettura x86, le directory di pagina e le tabelle di pagina forniscono insieme il mapping tra gli indirizzi virtuali (indirizzi di memoria utilizzati dalle applicazioni) e gli indirizzi fisici (posizioni effettive nell'hardware della memoria fisica).
A pagina è semplicemente un pezzo contiguo di memoria. x86 (32 bit) supporta 3 dimensioni di pagine: 4 MB, 2 MB e 4K B, quest'ultimo è il più utilizzato nei sistemi operativi tradizionali. Una tabella di pagina è una matrice di voci 1024 * a 32 bit (che si adattano comodamente a una singola pagina 4KB). Ogni voce punta all'indirizzo fisico di una pagina. Poiché una tabella a pagina singola non è in grado di rappresentare l'intero spazio indirizzo da sola (1024 voci * 4KB = solo 22 bit di spazio indirizzo), è necessaria una tabella di pagina di secondo livello: una directory di pagina . Una directory di pagina comprende anche 1024 * voci a 32 bit (che si adattano di nuovo a una singola pagina), ciascuna delle quali punta a una tabella di pagina. Possiamo vedere che ora 1024 * 1024 * 4KB = 32-bit e con questa struttura a 3 livelli siamo in grado di mappare l'intero spazio di indirizzi virtuali da 4 GB.
Quando alla CPU viene richiesto di accedere a un indirizzo virtuale, utilizza i 10 bit di ordine più alto (31:22) per indicizzare nella tabella di directory della pagina (il cui indirizzo di base è memorizzato in un registro speciale). I successivi 10 bit di ordine più alto (21:12) vengono utilizzati per indicizzare nella tabella della pagina indicata dalla voce della directory della pagina. I 12 bit di ordine più basso (11: 0) vengono infine utilizzati per indicizzare un byte nella pagina indicata dalla voce della tabella di pagina.
In altri sistemi potrebbero essere disponibili più o meno livelli di tabella di pagina, a seconda delle dimensioni dello spazio degli indirizzi virtuali e delle dimensioni di pagina supportate. Ad esempio, x86 con 4 MB di pagine richiede solo una singola directory di pagina. In modalità 64 bit con pagine 4KB, viene utilizzato un sistema a 4 livelli: una tabella di livello di mappatura pagina 4 contiene voci che puntano a una delle numerose directory di pagina.
Il Intel Architectures Developer's Manual ha molte più informazioni sull'argomento, in particolare nei capitoli 3 e 4.
Sede [osdev.org] (http://wiki.osdev.org/Paging) o il manuale ufficiale di Intel. – Jester