La memoria virtuale è un metodo in cui a ciascun processo viene assegnato il proprio spazio di indirizzi (memoria virtuale) e l'hardware traduce ogni riferimento di VM in un indirizzo di memoria fisica. Inizialmente la VM veniva utilizzata per fornire più spazio di indirizzi rispetto alla memoria fisica disponibile. Per soddisfare le situazioni in cui viene utilizzata più memoria virtuale rispetto alla memoria fisica, è possibile utilizzare un dispositivo di archiviazione come HDD per "scambiare" i dati e successivamente "scambiare (indietro)" secondo necessità.