Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
0 e 1023, pertanto tale valore può selezionare un qualsiasi elemento o nel direttorio di pagina o<br />
nella tabella della pagina; questa proprietà viene usata quando un puntatore all’indirizzo virtuale<br />
è tradotto in un indirizzo in byte nella memoria fisica. Un indirizzo di memoria virtuale a 32-bit<br />
è suddiviso in tre valori, come mostra la Figura 4. I primi 10 bit dell'indirizzo virtuale sono usati<br />
come indice nel direttorio delle pagina e questo indirizzo seleziona un elemento nel direttorio di<br />
pagina (PDE) che contiene l’effettiva struttura della pagina per una tabella di pagina. L'unità di<br />
gestione della memoria (MMU) usa i 10 bit successivi dell'indirizzo virtuale per selezionare un<br />
PTE dalla tabella di pagina che specifica una struttura di pagina nella memoria fisica; i restanti 12<br />
bit dell'indirizzo virtuale rappresentano lo spiazzamento di uno specifico byte nella struttura di pagina.<br />
MMU crea un puntatore al byte specifico in memoria fisica concatenando i 20 bit del PTE con i<br />
12 bit inferiori dell'indirizzo virtuale. Pertanto, il PTE a 32-bit ha 12 bit per descrivere lo stato<br />
della pagina fisica. L’hardware IA32 riserva 3 bit ad uso del <strong>sistema</strong> <strong>operativo</strong>. I rimanenti bit<br />
specificano se si è avuto accesso o si è scritto nella pagina, gli attributi nascosti, la modalità di<br />
accesso: se la pagina è globale, e se PTE è valido.<br />
I processori IA32, dotati di PAE, usano PDE e PTE a 64 bit per poter rappresentare il valore più<br />
grande a 24-bit del campo del frame di pagina. Pertanto i direttori di pagina di secondo livello e le<br />
tabelle di pagina contengono, rispettivamente, solo 512 PDE e PTE. Per fornire 4 GB di spazio di<br />
indirizzamento virtuale si richiede un livello supplementare del direttorio di pagina con quattro PDE.<br />
La traduzione di un indirizzo virtuale a 32 bit usa 2 bit per l'indice del direttorio ad alto livello e 9<br />
bit per ognuno dei direttori di pagina di secondo livello e per le tabelle di pagina.<br />
Per evitare un overhead nella traduzione di ogni indirizzo virtuale mediante l’esame di PDE e<br />
PTE, i processori usano una memoria associativa (translation-lookaside buffer: TLB) che<br />
contiene una cache di memoria associativa per mappare le pagine virtuali in PTE. A differenza<br />
dell'architettura IA32, dove la TLB è mantenuta dalla MMU hardware, IA64 utilizza una procedura<br />
trap software per fornire le traduzioni mancanti alla TLB e ciò fornisce al gestore di VM flessibilità<br />
nello scegliere le strutture dati da usare. In <strong>Windows</strong> <strong>XP</strong> si è scelta, per i processori IA64, una<br />
struttura ad albero a tre livelli per mappare gli indirizzi virtuali in modalità utente.<br />
Figura 4. Traduzione di un indirizzo da virtuale a fisico in un processore IA32.<br />
page offset= spiazzamento della pagina<br />
19