pagina 1/2
Migliorare le prestazioni del file di swap
in Windows 98 - by Casper
I sistemi operativi Microsoft, da Windows 95
in poi, sono famosi per la loro fame di memoria. Sono ormai lontani i tempi
in cui Bill Gates dichiarava che "640 Kb di RAM basteranno a tutti per far girare
qualunque cosa". Oggi possiamo considerarci fortunati se Windows 98 riesce a girare
con prestazioni più o meno accettabili su un PC dotato di 64 Mb.
In ogni caso, indipendentemente dalla dotazione
di RAM del sistema, fin dalla versione 3.x le finestre colorate dello zio
Bill hanno fatto uso di una particolare estensione della memoria fisica,
conosciuta come memoria virtuale. Per farla breve, Windows gestisce la
memoria fisica disponibile in modo dinamico, trasferendo di volta in volta su
hard disk in un file denominato win386.swp blocchi di dati non immediatamente
necessari, per fare posto alle diverse necessità delle applicazioni avviate.
In un sistema standard il file di memoria virtuale
(swap) si troverà sull'unità predefinita del sistema operativo e avrà dimensioni
variabili a seconda della configurazione e delle applicazioni attive.
La principale differenza fra la memoria fisica
e quella virtuale è rappresentata dal fatto che la prima è costituita da un supporto
completamente elettronico con tempi di accesso misurabili in nanosecondi, e quindi
estremamente veloce. La seconda è invece gestita su hard disk, un supporto meccanico
con tempi di accesso neppure paragonabili e pesantemente condizionata da diversi
fattori, fra cui la velocità di funzionamento dei componenti, lo stato di frammentazione
del file di swap e la sua posizione verso l'inizio o la fine dell'unità.
Probabilmente tutti conosciamo almeno qualcuno
dei sistemi tradizionali per aumentare le prestazioni della memoria virtuale:
- disattivare il file di swap, deframmentare l'hard
disk e riattivare la memoria virtuale impostata con una dimensione fissa
- impostare una dimensione fissa e usare una utility,
come Speed Disk delle Norton Utilities, per spostare il file di swap all'inizio
dell'unità disco, dove la velocità di lettura e scrittura dei dati (transfer rate)
è massima
- creare una partizione riservata esclusivamente al
file di swap
Di questi, il metodo che garantisce le migliori
prestazioni è il n. 2, ma anche in questo modo la memoria virtuale dovrà pur sempre
fare i conti con i tempi di accesso tipici di un supporto meccanico.
Vi siete mai chiesti cosa succederebbe se fosse
possibile togliere il file di swap dall'hard disk e spostarlo in memoria RAM?
Trasferire il file di swap in memoria RAM
In teoria non è realizzabile. Windows infatti
non permette di trasferire il file di swap su una unità disco costituita di memoria
RAM attraverso le impostazioni delle Proprietà di sistema. Come spesso succede,
però, quello che non si può fare con sistemi normali può essere comunque ottenuto
attraverso un piccolo trucco.
In ambiente DOS è possibile
creare una specie di hard disk virtuale all'interno della memoria RAM.
Senza scendere in particolari, questa nuova unità avrà la sua brava lettera come
le altre, potrà avere un'etichetta e si comporterà esattamente come un hard disk
qualsiasi, con due sole differenze: sarà enormemente più veloce e, spegnendo il
PC o mancando la corrente, tutto il suo contenuto verrà cancellato. (Wintricks.com
copyright)
Trasferendo il file di swap
su una unità di questo tipo, in teoria le prestazioni del sistema dovrebbero aumentare
in modo eccezionale.
Facile a dirsi.
I problemi più gravi da risolvere
per ottenere questo risultato sono stati tre:
·
Windows non permette di trasferire il file di swap su un disco RAM
·
con gli strumenti di DOS è possibile creare dischi RAM di max. 32 Mb
·
i dischi RAM sono gestiti sotto Windows in modalità DOS compatibile
Vedremo fra poco come aggirare
il primo problema.
Il secondo è stato finora
risolto solo in parte: ramdrive.sys fornito con DOS gestisce infatti unità
RAM non più grandi di 32 Mb, cioè del tutto insufficienti se il nostro scopo è
spostarci il file di swap di Windows. La ricerca di un gestore di unità RAM più
moderno, meno limitato del vecchissimo ramdrive.sys e freeware ha richiesto ore
di noiosa navigazione in rete. A questo proposito voglio ringraziare Paolo
Russo, che per primo ha recuperato da Internet un gestore gratuito in grado
di andare oltre i 32 Mb e sempre per primo è stato così gentile da testare questo
esperimento su una piattaforma completamente non-Intel. Purtroppo anche questa
prima soluzione si è rivelata insufficiente: il gestore alternativo (Turbodsk
2.2) è in grado di arrivare fino a 64 Mb, ma Windows risponde trattando tutte
le unità del PC in modalità DOS compatibile, riducendo fortemente le prestazioni.
Altre ore di ricerca con il
sospetto che fosse tempo perso. finchè ho trovato Xmsdsk 1.9i, di Franck
Uberto, un programmatore francese. Xmsdsk 1.9i è freeware e il suo autore afferma
che può generare senza nessun problema unità RAM fino a 2 Gb (!) Durante i test,
Windows ha gestito normalmente tutte le unità HD del PC, limitandosi a riconoscere
in modalità DOS compatibile solo l'unità RAM.
Quest'ultimo particolare rappresenta
appunto il terzo problema, finora senza soluzione. Una unità disco funzionante
in modalità DOS compatibile avrà prestazioni inferiori al normale, ma noi stiamo
parlando di un disco virtuale fatto di memoria RAM.che nonostante tutto sarà sempre
infinitamente più veloce di qualsiasi hard disk.
A questo punto, non ci resta
che passare.
Dalla
teoria alla pratica ...
Articoli correlati:
Swap File Windows avanzato
Swap File Windows XP
System.ini
|