Differenza tra memoria virtuale e cache

Nel mondo dei computer, la memoria imposta il limite su cui basiamo se possiamo eseguire quel programma o meno. Se sei stato abbastanza sfortunato da aver avuto esperienza di DOS, allora conosci la rovina del limite di memoria di 640k. Al giorno d'oggi la memoria sembra quasi infinita e nessuno riceve effettivamente i messaggi di "memoria insufficiente" di un anno. Come hanno fatto a farlo?

La risposta è una procedura di gestione della memoria molto intelligente. Collocando alcune parti che dovrebbero essere in memoria all'interno del tuo hard-disk, puoi estendere la capacità di memoria di un computer ben oltre ciò che è installato; questo è chiamato memoria virtuale. Supponiamo quindi che il tuo computer abbia solo 1 GB di memoria e che tu lanci alcuni programmi il cui consumo totale di memoria è di circa 1,5 GB. Senza la memoria virtuale, non sei autorizzato a farlo. Ma con la memoria virtuale, il sistema operativo assegna una parte del disco rigido come parte della memoria e conserva lì i dati. Quindi nell'esempio sopra diciamo che la memoria virtuale è anche 1GB. 1 GB di memoria effettiva + 1 GB di memoria virtuale = 2 GB di memoria di sistema. In questo modo, anche se la tua memoria è limitata, puoi comunque utilizzare ampie applicazioni di memoria.

C'è però uno svantaggio nella memoria virtuale. La lettura dei dati da un disco rigido è sostanzialmente più lenta della lettura dalla memoria. Quindi più informazioni sono memorizzate nel tuo hard-disk, più lentamente il tuo sistema diventa lento.

La memoria cache, d'altra parte, non aumenta la quantità di memoria che hai, ma riduce semplicemente la quantità di tempo necessaria per accedere ai dati. In modo che tu possa capire facilmente il concetto, diciamo che il processore è uno studente che fa un rapporto. Ogni volta che ha bisogno di dati, va allo scaffale (la libreria è il ricordo, i libri sono i dati) e tira fuori un libro e lo riporta alla sua sedia. Lo legge e lo restituisce allo scaffale prima di continuare con il suo rapporto. Se tu fossi lo studente sarebbe davvero dispendioso in termini di tempo se devi alzarti e prendere un libro ogni volta che ti serve un dato. Praticamente uno studente dovrebbe prendere alcuni libri dallo scaffale e metterlo sul tavolo. In modo che se ha bisogno di informazioni contenute nel libro che ha usato di recente, è a portata di mano e non deve stare in piedi e camminare per ottenerlo.

In questa metafora la tabella è la nostra memoria cache. Ogni volta che il processore utilizza i dati, inserisce i dati più recenti utilizzati nella memoria cache per un accesso rapido nel caso in cui sia necessario nuovamente. La memoria cache è molto limitata, proprio come una tabella con spazio limitato, quindi i dati a cui non si accede più a lungo vengono restituiti alla memoria per liberare la cache per dati più recenti.

Ulteriori informazioni su Cache e memoria virtuale.