Condividi tramite


Ottimizzazione delle prestazioni per la gestione di cache e memoria

Per impostazione predefinita, Windows memorizza nella cache i dati di file che vengono letti dai dischi e scritti sui dischi. Ciò implica che le operazioni di lettura leggano i dati dei file da un'area della memoria di sistema, nota come cache dei file di sistema, anziché dal disco fisico. Analogamente, le operazioni di scrittura scrivono i dati dei file nella cache dei file di sistema anziché sul disco e questo tipo di cache è noto come cache write-back. La memorizzazione nella cache viene gestita per ogni oggetto file. La memorizzazione nella cache viene eseguita sotto il controllo del gestore della cache, che opera in modo continuo mentre è in esecuzione Windows.

I dati dei file nella cache dei file di sistema vengono scritti sul disco a intervalli determinati dal sistema operativo. Le pagine scaricate restano nel working set della cache di sistema (se FILE_FLAG_RANDOM_ACCESS è impostato e l'handle di file non è stato chiuso) oppure nell'elenco standby dove diventano parte della memoria disponibile.

La strategia che consiste nel ritardare la scrittura dei dati nel file e nel mantenerli nella cache finché questa non viene scaricata è nota come scrittura lazy e viene attivata dal gestore della cache a un determinato intervallo di tempo. Il momento in cui un blocco di dati del file viene scaricato dipende in parte da quanto tempo è rimasto memorizzato nella cache e da quanto tempo è trascorso dall'ultima volta in cui si è avuto accesso ai dati in un'operazione di lettura. Questo garantisce che i dati del file letti frequentemente restino accessibili nella cache dei file di sistema per il massimo intervallo di tempo previsto.

Questo processo di memorizzazione nella cache dei dati del file è illustrato nella figura seguente:

file data caching

Come indicato dalle righe continue nella figura precedente, un'area di dati da 256 KB viene letta in uno slot della cache da 256 KB nello spazio indirizzi di sistema quando viene richiesta per la prima volta dal gestore della cache durante un'operazione di lettura del file. Un processo in modalità utente quindi copia i dati di questo slot nel proprio spazio indirizzi. Quando il processo ha completato l'accesso ai dati, riscrive i dati modificati nello stesso slot nella cache di sistema, come indicato dalla freccia tratteggiata tra lo spazio indirizzi del processo e la cache di sistema. Quando il gestore della cache determina che i dati non saranno più necessari per un determinato periodo di tempo, riscrive i dati modificati nel file sul disco, come indicato dalla freccia tratteggiata tra la cache di sistema e il disco.

Contenuto della sezione: