La memoria virtuale è un’astrazione che permette a ogni processo di credere di avere un proprio spazio di memoria continuo indipendente dagli altri processi e più grande della RAM fisica. La memoria virtuale si basa su tre concetti chiave:


Spazio di indirizzamento virtuale:

Ogni processo vede un proprio spazio, ad esempio:

0x00000000 → 0xFFFFFFFF  (32 bit)

Questo spazio è virtuale, non reale.


Paginazione:

La memoria è divisa in pagine (tipicamente 4 KB). Il sistema operativo mantiene una tabella delle pagine che mappa:

indirizzo virtuale → indirizzo fisico (RAM) oppure su disco

Swap / Paging file:

Quando la RAM è piena, il sistema operativo sposta alcune pagine su disco. Questo permette di eseguire più processi contemporaneamente e di far girare programmi più grandi della RAM. Ovviamente è più lento, ma funziona.