5.6. Memória Virtual

Com o crescente aumento da quantidade e tamanho dos programas sendo executados pelos processadores, surgiu a necessidade de cada vez mais memória principal. O problema, com já foi dito, é que as memórias principais (basicamente DRAM) são caras. Ao mesmo tempo, quando há muito programas sendo executados ao mesmo tempo, há uma grande tendência de haver muitos deles esquecidos, sem serem acessados. Esses programas ocupam espaço da memória principal de forma desnecessária.

Pensando nisso, foi criado o conceito de Memória Virtual, que nada mais é do que a técnica de utilizar a Memória Secundária, geralmente HD ou SSD, como uma extensão da Memória Principal. Desta forma, quando a memória principal está cheia e não há mais espaço para novos programas ou dados, o sistema utiliza a memória secundária. Tudo é feito de forma automática pela Unidade de Gerência de Memória (ou Memory Management Unit - MMU) presente nos processadores. Assim, todo dado que é acessado é antes buscado pela MMU na memória principal. Se ele não estiver lá, ela vai buscar na memória secundária, faz uma cópia na memória principal e libera o acesso ao dado.

A principal técnica de Memória Virtual é a Paginação. Na Paginação, todos os dados são acessados através de páginas. Isso facilita o processo de organização e localização dos dados que estão na memória principal e secundária. Agora, ao invés de gerenciar palavra por palavra, o sistema gerencia grandes blocos (geralmente de 64KB) chamados de páginas.