A memória virtual é um conceito valioso na arquitetura de computador que permite executar programas grandes e sofisticados em um computador, mesmo que ele tenha uma quantidade relativamente pequena de RAM. Um computador com memória virtual manipula com habilidade as demandas conflitantes de vários programas dentro de uma quantidade fixa de memória física. Um PC com pouca memória pode executar os mesmos programas que um com RAM abundante, embora mais lentamente.
Endereços físicos vs virtuais
Um computador acessa o conteúdo de sua RAM por meio de um sistema de endereços, que são essencialmente números que localizam cada byte. Como a quantidade de memória varia de PC para PC, fica complicado determinar qual software funcionará em um determinado computador. A memória virtual resolve este problema tratando cada computador como se tivesse uma grande quantidade de RAM e cada programa como se utilizasse exclusivamente o PC. O sistema operacional, como o Microsoft Windows ou o OS X da Apple, cria um conjunto de endereços virtuais para cada programa. O sistema operacional traduz endereços virtuais em físicos, adaptando programas dinamicamente à RAM à medida que se tornam disponíveis.
Paging
A memória virtual divide os programas em blocos de tamanho fixo chamados páginas. Se um computador tiver memória física abundante, o sistema operacional carrega todas as páginas de um programa na RAM. Caso contrário, o sistema operacional se ajusta o máximo que pode e executa as instruções nessas páginas. Quando o computador termina com essas páginas, ele carrega o resto do programa na RAM, possivelmente sobrescrevendo as páginas anteriores. Como o sistema operacional gerencia automaticamente esses detalhes, isso libera o desenvolvedor de software para se concentrar nos recursos do programa e não se preocupar com problemas de memória.
Multiprogramação
A memória virtual com paginação permite que um computador execute muitos programas ao mesmo tempo, quase independentemente da RAM disponível. Esse benefício, chamado de multiprogramação, é um recurso fundamental dos sistemas operacionais modernos para PC, pois eles acomodam muitos programas utilitários, como drivers de impressora, gerenciadores de rede e scanners de vírus, ao mesmo tempo que seus aplicativos - navegadores da Web, processadores de texto, e-mail e mídia jogadoras.
Arquivo de paginação
Com a memória virtual, o computador grava páginas de programa que não foram usadas recentemente em uma área do disco rígido chamada arquivo de paginação. O arquivo salva os dados contidos nas páginas; se o programa precisar dele novamente, o sistema operacional o recarregará quando a RAM estiver disponível. Quando muitos programas competem por RAM, o ato de trocar páginas para o arquivo pode diminuir a velocidade de processamento do computador, pois ele gasta mais tempo fazendo tarefas de gerenciamento de memória e menos tempo realizando trabalhos úteis. Idealmente, um computador terá RAM suficiente para lidar com as demandas de muitos programas, minimizando o tempo que o computador gasta gerenciando suas páginas.
Proteção de Memória
Um computador sem memória virtual ainda pode executar muitos programas ao mesmo tempo, embora um programa possa alterar, acidental ou deliberadamente, os dados de outro se seus endereços apontarem para o programa errado. A memória virtual evita essa situação porque um programa nunca "vê" seus endereços físicos. O gerenciador de memória virtual protege os dados em um programa de alterações por outro.