4.5. Implicazioni sulle prestazioni della memoria virtuale

Mentre la memoria virtuale rende possibile per i computer la gestione di applicazioni più complesse, è necessario, come con qualsiasi tool molto potente,anche far fronte al suo lato negativo. Tale lato negativo è rappresentato dalla prestazione — un sistema operativo con memoria virtuale ha molto più da elaborare rispetto ad un sistema operativo incapace di supportare la stessa memoria virtuale. Ciò significa che non si avrà mai una buona prestazione con la presenza di memoria virtuale quando la stessa applicazione risiede 100% nella memoria stessa.

Tuttavia, ciò non rappresenta un problema insormontabile. I benefici di una memoria virtuale sono veramente molteplici, e con un pò d'impegno è possibile ottenere una buona prestazione. È consigliabile esaminare le risorse del sistema che sono state influenzate da un uso eccessivo del sottosistema della memoria virtuale.

4.5.1. Come ottenere una prestazione pessima

Per un momento, prendete in considerazione quello che avete letto in questo capitolo, e considerate le risorse del sistema usate per una attività molto intensa di swapping e page fault:

La natura correlata di questi carichi, rende più semplice la comprensione di come la carenza delle risorse possa causare dei problemi alla prestazione.

È solo necessario avere una RAM troppo piccola, un'attività page fault molto intensa, e un sistema che opera molto vicino ai propri limiti in termini di CPU o disco I/O. A questo punto, il sistema viene affetto da thrashing, ne consegue quindi, una prestazione molto povera.

4.5.2. Come ottenere la prestazione migliore

Nel migliore dei casi, l'overhead dovuto dal supporto della memoria virtuale presenta un carico minimo aggiuntivo per un sistema configurato in modo corretto:

È da ricordare quindi che l'impatto sulle prestazioni della memoria virtuale è minimo se essa viene usata il meno possibile. Questo significa che per avere una buona prestazione del sottosistema della memoria virtuale, bisogna avere una RAM sufficiente.

La fase successiva (ma meno importante) è avere una capacità sufficiente di CPU e del disco I/O. Tuttavia, ricordate che queste risorse aiutano a preservare la prestazione del sistema nei riguardi di attività di swapping e faulting molto elevata; questi requisiti fanno poco per aiutare la prestazione del sottosistema della memoria virtuale (anche se gli stessi possono avere un certo impatto nelle prestazioni generali del sistema).

Note

[1]

Un sistema attivo incontrerà sempre qualche livello di page fault, a causa della loro introduzione nella memoria di applicazioni appena lanciate.