Tavole di paging multilivello

0

Riferendosi all'immagine qui:

Da link

Qualcuno potrebbe spiegarmi qualcosa per me? Non capisco esattamente come funziona. A quanto ho capito, la pagina "directory" contiene un'entità che punta essenzialmente all'inizio della "tabella della pagina". Tuttavia, sicuramente tutte le entità nella pagina "directory" conterrebbero lo stesso identico valore? Oppure, questo significa che abbiamo una "directory" di pagine 1x ma una "tabella" N (allo stesso livello nella gerarchia multilivello della pagina ")?

Se ci sono pagine N "tabelle" e una pagina "directory", capisco perché il PD punta a uno degli N PT. Se non ci sono, sono davvero confuso.

    
posta user997112 04.04.2014 - 17:25
fonte

2 risposte

2

N tabelle di pagina.

Se guardi la voce di Wikipedia per le tabelle delle pagine , vedrai due diagrammi lì; uno per la struttura della tabella di pagina a due livelli e uno per la struttura della tabella di pagina a tre livelli. Lo scopo della struttura della tabella di pagina a tre livelli è di implementare PAE , che consente l'accesso alla memoria oltre i 4 GB.

    
risposta data 04.04.2014 - 17:31
fonte
0

Quel diagramma dovrebbe essere letto come:

  1. La Page Directory (PD) è una matrice di voci di directory di pagina (PDE), indicate dal registro di controllo 3 (CR3).
  2. I 10 bit più a sinistra dell'indirizzo vengono utilizzati come indice nel PD. Il PDE in quella posizione fa riferimento a una delle numerose Page Table (PT), in particolare al PT che mappa le pagine per l'indirizzo desiderato.
  3. I successivi 10 bit sono usati come indice nel PT. Il PTE (Page Table Entry) in quella posizione punta a una delle molte pagine 4KB in memoria, in particolare la pagina che contiene l'indirizzo desiderato.
  4. I 12 bit più a destra vengono utilizzati come indice di byte nella pagina.

Quindi la posizione della memoria è a CR3 -> [a & 0xffc00000] -> [a & 0x003ff000] -> [a & 0x00000fff]

    
risposta data 05.04.2014 - 14:41
fonte

Leggi altre domande sui tag