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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figura 6. File I/O.<br />

Quando è possibile, per le operazioni sincrone sui file in cache, I/O è gestito dal meccanismo di<br />

I/O veloce (fast I/O mechanism) che mette in parallelo il normale I/O basato su IRP, ma esegue<br />

direttamente chiamate nello stack del driver invece che passare in un IRP. Siccome non ci sono<br />

IRP coinvolti, l’operazione non dovrebbe bloccarsi per un lungo periodo di tempo e non può essere<br />

accodata ad un thread lavoratore. Di conseguenza, quando l’operazione raggiunge il file system e<br />

chiama il gestore della cache, l’operazione fallisce nel caso in cui le informazioni non siano già in<br />

cache. <strong>Il</strong> gestore di I/O tenta poi l’operazione usando il percorso del normale IRP.<br />

Un'operazione di lettura a livello kernel si comporta in modo simile, ad eccezione del fatto che ai<br />

dati si può accedere direttamente dalla cache, invece che copiarli in un buffer nello spazio<br />

dell'utente. Per usare i metadati del file system (strutture dati che descrivono il file system), il<br />

kernel, per leggere i metadati, usa l’interfaccia di mappatura del gestore della cache, mentre, per<br />

modificarli, il file system usa l'interfaccia a cui punta (pinning) il gestore della cache. <strong>Il</strong> Pinning<br />

(puntare) di una pagina blocca la pagina in un frame della pagina della memoria fisica, in modo che<br />

il gestore di VM non possa muoversi o paginare verso l'esterno la pagina. Dopo l'aggiornamento dei<br />

metadati, il file system chiede al gestore della cache di liberare (unpin) la pagina. Una pagina<br />

modificata è marcata come sporca, di conseguenza il gestore di VM trasferisce la pagina su disco e<br />

il metadato è memorizzato in un normale file.<br />

Per migliorare le prestazioni, il gestore della cache mantiene una piccola storia delle richieste<br />

di lettura e dalla storia cerca di predire le richieste future. Se il gestore della cache trova un modello<br />

che assomiglia alle tre precedenti richieste, tipo un accesso sequenziale in avanti o all’indietro, esso<br />

27

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

Saved successfully!

Ooh no, something went wrong!