A memória virtual é uma técnica de gerenciamento de memória que permite a um computador executar programas e acessar dados maiores que a quantidade de memória física disponível no sistema. Funciona criando um espaço de endereço virtual para cada processo, que é um intervalo contíguo de endereços que o processo pode usar. Este espaço de endereço virtual é então mapeado para a memória física do sistema, de modo que quando um processo acessa um endereço virtual, a unidade de gerenciamento de memória (MMU) da CPU traduz o endereço virtual em um endereço físico.
A memória virtual é possibilitada pelo uso de um mecanismo de paginação. As páginas são blocos de memória de tamanho fixo, normalmente 4 kilobytes (KB) ou maiores, e cada endereço virtual é dividido em um número de página e um deslocamento dentro da página. Quando um processo acessa um endereço virtual, a MMU verifica se a página que contém esse endereço está na memória física. Se a página estiver na memória, a MMU traduz o endereço virtual para um endereço físico e o acesso é concluído.
Se a página não estiver na memória, a MMU gera uma exceção de falha de página. O sistema operacional (SO) então lida com a falha de página selecionando uma página da memória física a ser removida e substituindo-a pela página necessária do disco. Este processo é chamado de substituição de página. O sistema operacional usa vários algoritmos para determinar quais páginas serão removidas, e esses algoritmos são projetados para minimizar o número de falhas de página e, assim, melhorar o desempenho do sistema.
A memória virtual é uma parte essencial dos sistemas operacionais modernos e permite que os computadores executem programas muito maiores do que a quantidade de memória física disponível. Também fornece isolamento entre processos, para que cada processo tenha seu próprio espaço de endereço virtual privado e não possa acessar a memória de outros processos.