Virtual
Memória virtual, é uma técnica que usa a memória secundária como uma cache para armazenamento secundário. Houve duas motivações principais: permitir o compartilhamento seguro e eficiente da memória entre vários programas e remover os transtornos de programação de uma quantidade pequena e limitada na memória principal.
A memória virtual consiste em recursos de hardware e software com três funções básicas:[1] [2]
- (i) realocação (ou recolocação), para assegurar que cada processo (aplicação) tenha o seu próprio espaço de endereçamento, começando em zero;
- (ii) proteção, para impedir que um processo utilize um endereço de memória que não lhe pertença;
- (iii) paginação (paging) ou troca (swapping), que possibilita a uma aplicação utilizar mais memória do que a fisicamente existente (essa é a função mais conhecida).
Simplificadamente, um usuário ou programador vê um espaço de endereçamento virtual, que pode ser igual, maior ou menor que a memória física (normalmente chamada memória DRAM - Dynamic Random Access Memory).