Vou tentar começar devagar e depois juntar tudo isso para você. É assim:
Memória virtual, como comumente usada, refere-se a "paginação". Como o nome sugere, a paginação é como um bloco de notas humano.
Quando você está trabalhando com somas simples ou aprendendo informações simples, você faz tudo isso em sua mente: basta carregar todas as informações, processá-las e obter a resposta. É como um computador carregando arquivos do disco rígido - ele carrega os programas ou imagens ou outras informações necessárias para trabalhar em sua "memória real" (ou "memória física") e trabalha nelas com o "cérebro" ( seu processador).
No entanto, quando estiver aprendendo informações complexas ou trabalhando com somas complexas, talvez não seja possível encaixar tudo isso em sua cabeça de uma só vez. Você fica confuso, começa a desacelerar, não consegue manter tudo lá de uma vez, e tem que esquecer algo para lembrar de outra coisa.
A solução humana é usar um bloco de notas. Anotamos nas páginas todas as coisas que não conseguimos lembrar de uma vez, mas nos referimos a elas enquanto fazemos as somas. Podemos não ser capazes de lembrar uma lista enorme de números de vendas para o mês, mas podemos olhar para as páginas, obter as informações um pouco de cada vez e processar cada bit. Isso é como o computador "paginando" sua memória - escrevendo páginas cheias de informações e colocando-as em "memória virtual" para referência futura, e percebendo que precisa de uma página e carregando a página de volta da memória virtual para a memória real. No linux e no unix, o local onde essas páginas são armazenadas é literalmente chamado de "arquivo de paginação", e as páginas de dados na memória são literalmente chamadas de "páginas". Sistemas diferentes têm nomes diferentes para essas coisas, mas o conceito geral é o mesmo.
Então, realmente, a paginação é muito simples. Todas as páginas de informações não cabem na memória, então algumas páginas são colocadas no disco e carregadas novamente mais tarde.
Agora, onde fica mais complicado, sistemas modernos possuem mapeamento de memória e proteção de memória, que geralmente são manipulados pelo mesmo sistema de hardware no computador: a unidade de gerenciamento de memória, ou MMU.
Em um (moderno) computador multitarefa, que pode executar vários programas ao mesmo tempo e possui proteção de memória, cada programa é geralmente separado de outros programas em execução no mesmo sistema. Dessa forma, um programa não pode alterar outro programa simplesmente acessando sua memória - a MMU separa fisicamente o espaço de endereço de um programa do de outros. Em outras palavras, os programas do usuário não vêem programas de outros usuários ou até mesmo outros programas. Eles não vêem "memória real" - eles vêem sua própria "memória virtual".
Agora, esse conceito de isolamento de memória e o conceito de arquivo de paginação são duas coisas conceitualmente diferentes, e é provavelmente por isso que você está confuso. No entanto, a chave é que ambos trabalhem usando a MMU - a unidade de gerenciamento de memória, que divide a memória em páginas e mapeia páginas para um espaço de endereço virtual.
Assim, quando um programa solicita a memória em um determinado "endereço de memória", o que realmente acontece é que as páginas de memória para esse programa e seus endereços correspondentes (o "espaço de endereço" do programa) são pesquisadas e a página que corresponde a esse bloco de memória é encontrado. Essa página pode ser carregada em algum lugar na memória real, em cujo caso o programa recebe acesso ou pode ser paginado para um disco. Se for paginado, ele acionará uma "falha de página" - o disco será acessado e a página será carregada na memória. Portanto, o programa funciona mesmo quando não há memória suficiente, mas funciona LENTAMENTE, se é necessário usar o disco para o que normalmente seria um acesso muito rápido à memória.
Agora, se não houver espaço suficiente para carregar a página na memória, você terá um problema. Nesse caso, alguma outra página que já esteja na memória deve ser "trocada" para o disco, para que a primeira página do programa possa ser carregada. Ou podem ser igualmente páginas do mesmo programa. Você vê isso às vezes em programas gráficos, por exemplo, em sistemas altamente carregados, quando parte da imagem é carregada lentamente e desenhada rapidamente, então a próxima parte é carregada igualmente lentamente e desenhada rapidamente, e quando você volta a trabalhar com o primeiro parte, é lento novamente. Isso é porque eles estão sendo carregados para serem trabalhados, então trocados novamente, então algo mais pode ser trabalhado. Obviamente, esta é uma maneira muito lenta de trabalhar, e o que você realmente precisa é de mais memória real.