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.

3.3.5 Gestore di I/O<br />

<strong>Il</strong> gestore di I/O (I/O manager) è responsabile del file system, dei driver del dispositivo e dei<br />

driver della rete. Tiene traccia di quali driver del dispositivo, driver del filtro e file system sono<br />

caricati ed inoltre controlla i buffer per le richieste di I/O. Funziona con il gestore di VM per<br />

fornire file a memoria mappata I/O e controlla il gestore della cache di <strong>Windows</strong> <strong>XP</strong>, che gestisce<br />

la cache dell’intero <strong>sistema</strong> di I/O. <strong>Il</strong> gestore di I/O è fondamentalmente asincrono; mentre l’I/O<br />

sincrono è fornito esplicitamente in attesa di un completamento di un’operazione di I/O. <strong>Il</strong> gestore<br />

di I/O fornisce parecchi modelli di completamento asincrono di I/O compresa la regolazione di<br />

eventi, l’invio degli APC al thread di inizio, e le porte di completamento di I/O che permettono ad<br />

un singolo thread di processare i completamenti di I/O da parte di molti altri thread.<br />

I driver del dispositivo sono organizzati come una lista per ogni dispositivo (chiamato driver o stack<br />

I/O in conseguenza di come vengono aggiunti i driver del dispositivo). <strong>Il</strong> gestore di I/O converte le<br />

richieste ricevute in una forma standard che si chiama pacchetto di richiesta di I/O (I/O request<br />

packet: IRP) che inoltra al primo driver nello stack per processarlo. Dopo che ogni driver ha<br />

processato l’IRP, chiama il gestore di I/O per inoltrarlo al driver successivo nello stack, o, se il<br />

processo è finito, per completare l’operazione sull’IRP.<br />

I completamenti possono avvenire in un contesto differente dalla richiesta originale di I/O. Per<br />

esempio, se un driver sta eseguendo la propria parte di un’operazione di I/O ed è forzato a bloccarsi<br />

per un lungo tempo, può accodare l’IRP al thread lavoratore per proseguire il processo nel contesto<br />

del <strong>sistema</strong>. Nel thread originale il driver restituisce uno stato che specifica che la richiesta di I/O è<br />

in corso, in modo che il thread possa continuare l’esecuzione in parallelo con l’operazione di I/O.<br />

IRP può anche essere elaborato nelle routine di interrupt del servizio e completato in un contesto<br />

arbitrario. Poiché una qualche elaborazione finale ha bisogno di avvenire nel contesto che ha iniziato<br />

l’I/O, il gestore di I/O usa una APC per eseguire il processo di completamento finale di I/O nel<br />

contesto del thread che ha dato l’avvio.<br />

<strong>Il</strong> modello dello stack del dispositivo è molto flessibile. Mentre si costruisce uno stack del<br />

driver, vari driver hanno l'opportunità di inserirsi nello stack come driver del filtro (filter drivers).<br />

I driver del filtro hanno la possibilità di esaminare e potenzialmente modificare ogni operazione di<br />

I/O. La gestione del montaggio, della partizione e le operazioni di striping/mirroring sono esempi di<br />

funzionalità implementate usando i driver del filtro che operano al di sotto del file system nello<br />

stack. I driver del filtro del file system agiscono sopra il file system e sono usati per realizzare<br />

alcune funzionalità quali la gestione della memorizzazione gerarchica, la singola istanza di file per<br />

l’avvio remoto , e la conversione dinamica del formato. Terze parti usano anche un filtro del file<br />

system per implementare il rilevamento di virus.<br />

I driver dei dispositivi di <strong>Windows</strong> <strong>XP</strong> sono scritti secondo le specifiche del modello di driver<br />

di <strong>Windows</strong> (WDM) che elenca i driver del dispositivo includendo la stratificazione dei driver del<br />

filtro, la condivisione del codice comune per gestire l'alimentazione, le richieste plug-and-play e la<br />

costruzione della corretta logica di cancellazione, ecc.<br />

A causa della ricchezza di WDM, può essere un carico eccessivo di lavoro scrivere un driver<br />

completo WDM del dispositivo per ogni nuovo dispositivo hardware. Fortunatamente non è<br />

necessario a causa del modello di port/miniport. Per classi similari di dispositivi, quali i driver<br />

audio, i dispositivi SCSI ed i controller Ethernet, ogni istanza ad un dispositivo condivide un driver<br />

comune per quella classe, chiamato driver port (port driver). <strong>Il</strong> driver port realizza le operazioni<br />

25

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

Saved successfully!

Ooh no, something went wrong!