Factau ii
A idéia básica da memória virtual é permitir que programas muito maiores que a memória disponível possam ser executados. Para isso, em 1961 Fotheringham criou o método conhecido como memória virtual. Com o uso dessa memória o SO mantém as partes ativas do programa na memória e o restante em disco, sendo carregadas ou removidas da memória de acordo com as necessidades.
Memória virtual é uma técnica que se utiliza da memória secundária para produzir o efeito prático de aumentar significativamente o espaço de endereçamento disponível aos programas. Essa técnica não depende do tamanho da memória principal – que continua sendo limitado – para ser implementada. A memória secundária (normalmente um disco rígido) passa a servir como uma espécie de extensão da memória principal, armazenando a maior parte dos programas e dados carregados para execução. À memória principal são transferidas por vez apenas algumas partes destes programas e dados, essenciais ao momento pontual da execução.
Deste modo, cria-se dois espaços de endereçamento de memória: o espaço de endereçamento virtual e o espaço de endereçamento real. Endereços virtuais são os endereços gerados pelos compiladores e linkers na implementação dos programas. Eles representam o espaço completo que os programas necessitam para serem carregados, isto é, o tamanho de memória que efetivamente ocupam. No entanto, a memória real – ou memória principal (RAM – Random Access Memory) – pode ser bastante limitada, possuindo um espaço de endereçamento real às vezes menor até mesmo que um único programa. Um endereço real corresponde a uma célula física de endereçamento presente na memória principal da máquina.
Obviamente, apenas parte das aplicações carregadas no espaço de endereçamento virtual poderá ocupar a memória real num certo instante. Por outro lado, somente os dados carregados na memória principal são processados pela CPU. Como várias