Il rapido aumento della dimensione delle applicazioni, avvenuto negli anni ’90 e proseguito fino ai giorni nostri, ha imposto la necessità di gestire in modo più efficiente il rapporto tra programma e memoria. Servivano nuove tecniche in grado di consentire l’esecuzione di programmi la cui dimensione superava lo spazio disponibile in memoria. Lo swapping non era più ritenuta una soluzione accettabile, per questo motivo fu proposta l’introduzione di una tecnica chiamata memoria virtuale.

La memoria virtuale si basa su due principi cardine delle architetture:

  • Il principio di località spaziale;
  • Il principio di località temporale.

Principio di località spaziale

Se un elemento di posizione S viene referenziato all’istante T , la probabilità che un secondo elemento di posizione S’ con: \mid S-S' \mid \le \Delta
venga referenziato all’istante T + T' sale al tendere di T' a 0.

Principio di località temporale

Se un elemento viene referenziato all’instante T la probabilità che esso venga referenziato nuovamente all’istante T + T' sale al tendere di T' a 0.