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.

(memory-mapped file). Una sezione può essere basata, intendendo con ciò che la sezione<br />

compare allo stesso indirizzo virtuale per tutti i processi che tentano di accedervi. Infine, la<br />

protezione di memoria delle pagine nella sezione, può essere posta a sola lettura, a lettura e scrittura, a<br />

lettura-scrittura–esecuzione, a sola esecuzione, ad accesso vietato, o copy-on-write. Gli ultimi due<br />

tipi di protezione hanno bisogno di una qualche spiegazione:<br />

• Una pagina in cui sia vietato l’accesso, segnala un'eccezione se si tenta di accedervi; tale<br />

eccezione è usata, per esempio, per controllare se un programma difettoso itera oltre la fine di un<br />

array. Sia l’allocatore della memoria in modalità utente, che quello speciale del kernel, usato dal<br />

dispositivo di verifica, possono essere configurati per mappare ogni allocazione alla fine di una<br />

pagina seguita da una pagina ad accesso vietato per rilevare sovraccarichi nel buffer.<br />

• <strong>Il</strong> meccanismo di copy-on-write incrementa l'uso efficiente di memoria fisica da parte del gestore<br />

di VM: quando due processi desiderano copie indipendenti di un oggetto, il gestore di VM mette<br />

una singola copia condivisa in memoria virtuale ed attiva la proprietà di copy-on-write per<br />

quella regione di memoria. Se uno dei processi cerca di modificare i dati in una pagina copy-onwrite,<br />

il gestore della VM esegue una copia privata della pagina per il processo.<br />

In <strong>Windows</strong> <strong>XP</strong>, la traduzione dell’indirizzo virtuale usa una tabella di pagine a più livelli; nei<br />

processori IA32, senza PAE abilitato, ogni processo ha un direttorio di pagine (page directory) che<br />

contiene 1024 elementi nel direttorio delle pagine (page-directory entries: PDE) da 4 byte. Ogni<br />

PDE punta ad una tabella di pagine che contiene 1024 elementi della tabella delle pagine (pagetable<br />

entries: PTE) di dimensione di 4 byte, e ogni PTE punta ad una struttura di pagina (page<br />

frame) nella memoria fisica da 4 Kb. In un processo, la dimensione totale di tutte le tabelle di<br />

pagina è di 4 MB, pertanto il gestore di VM pagina esternamente, quando è necessario, le tabelle su<br />

disco. Consultare la Figura 3 per vedere uno schema di questa struttura.<br />

17

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

Saved successfully!

Ooh no, something went wrong!