31.05.2013 Views

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!