Così Windows gestisce la memoria virtuale

Dalla procedura di swapping ai concetti di Prefetch e Superfetch, ecco quello che bisogna sapere.

maggio 2007 Ogni sistema operativo sviluppato da Microsoft, a partire
dalla versione 3.1, utilizza la memoria virtuale: anche nel caso in cui la memoria
RAM non sia completamente “saturata”, Windows indirizza automaticamente ogni
processo anche sulla memoria virtuale; questi dati vengono immagazzinati in
un file nella root principale del disco fisso, denominato Pagefile.sys.

Nel caso in cui le applicazioni avviate necessitino di un quantitativo di memoria
superiore a quella realmente installata sul sistema, Windows libererà la RAM,
utilizzando la memoria virtuale come estensione: dal punto di vista prestazionale
questa soluzione comporta un notevole rallentamento dell'esecuzione delle operazioni,
ma consente all'utente di lavorare in modalità multitasking anche in maniera
intensiva, senza la necessità di dover chiudere ed aprire applicazioni in continuazione.

Non appena sarà richiesto un processo precedentemente copiato sulla memoria
virtuale, il sistema si incaricherà di trovare i dati e ricopiarli sulla RAM,
facendo spazio e spostando eventuali processi non utilizzati: questa procedura
viene definita swapping (dall'inglese swap che significa scambio) ed è per questo
motivo che in molti casi, il file pagefile viene definito come file di swap.

Prefetch
Prefetch è la tecnologia introdotta da Microsoft in Windows XP che si occupa
di “precaricare” sulla memoria RAM i pezzi chiave dei dati necessari all'esecuzione
di alcune applicazioni, prima che questi vengano richiesti. Dal punto di vista
del funzionamento, Prefetch viene gestito da una applicazione denominata Windows
XP Cache manager monitors che si incarica di “monitorare” gli spostamenti dei
dati da disco a RAM duran?te il normale utilizzo del PC.

In seguito all'analisi del comportamento del PC, Cache Manager crea, all'interno
di una cartella denominata Prefetch in Windows, alcuni file con estensione PF
(definiti anche “mappe”) che offrono importanti indicazioni per il funzionamento
della tecnologia prefetch. Nel dettaglio, Cache manager utilizza queste “mappe”
per aumentare le prestazioni del sistema: all'avvio di ogni applicazione, infatti,
questa utility, cerca nella cartella \Windows\ Prefetch una mappa corrispondente,
e nel caso di riscontro positivo utilizzerà queste informazioni per caricare
in memoria i dati necessari.

Per poter mantenere il funzionamento di Prefetch costante nel tempo, Windows
XP analizza regolarmente il contenuto delle mappe, compilando inoltre una lista
(presente in \Windows\Prefetch\ e chiamato layout.ini) contenente directory
e file utilizzati. Il file layout.ini gioca inoltre un ruolo molto importante
durante la deframmentazione dell'hard disk: Windows XP infatti, sulla base delle
informazioni contenute in questo file posizionerà in maniera più contigua possibile
i dati relativi alle applicazioni.

SuperFetch
Superfetch è una versione ottimizzata di Prefetch introdotta in Windows Vista,
che ha come scopo quello di migliorare il sistema di precaricamento dei dati.
Il vero limite di Prefetch è infatti rappresentato dalla necessità di spostare
i dati in maniera continua da RAM ad hard disk e viceversa: in corrispondenza
dell'esecuzione di una applicazione “pesante”, tutti i dati caricati precedentemente
saranno tolti dalla memoria e riposizionati sulla memoria virtuale. Superfetch
cerca di andare un passo avanti e oltre a creare i file “mappa” e registrare
le informazioni relative ai dati chiave per l'esecuzione delle applicazioni,
memorizza anche i dettagli relativi al numero di volte e quando le applicazionisono
utilizzate.

In base a queste informazioni Windows Vista gestisce in maniera intelligente
i dati in memoria, attribuendo delle priorità a seconda dell'importanza dell'applicazione:
in questo senso, in corrispondenza di un processo che necessiti di una buona
porzione di memoria RAM, Windows trasferirà sulla memoria virtuale i dati meno
importanti. Per rendere più efficiente e più veloce il caricamento di dati da
memoria virtuale a memoria RAM, in Windows Vista, Microsoft ha introdotto il
concetto di EMD (External Memory Devices), che sfrutta le chiavi Readyboost,
e i veloci tempi di accesso, che abbiamo analizzato nelle pagine precedenti.

CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here