Memória Virtual
A memória virtual é a separação da memória lógica e da memória física, ela permite que uma memória virtual extremamente grande seja fornecida para os programadores quando apenas uma memória física menor está disponível.
Este tipo de memória foi implementado devido a necessidade que existe de alocar processos na memória, e o problema acontece quando os programas não cabem totalmente na memória física.
Muitos vetores, listas e tabelas reservam mais memória do que realmente necessitam usar. Outros recursos de um programa podem raramente serem usados. Por isso a implementação da memória virtual surgiu como uma solução para maximizar o uso da memória e resolver estas deficiências.
Com o advento da memória virtual os programas não ficariam mais restritos a memória física disponível, podendo assim utilizar espaços realmente grandes de memória. Assim, com os programas usando menos memória física, mais processos podem ser executados ao mesmo tempo.
Assista o vídeo a seguir para compreender os recursos empregados na Memória Virtual:
PAGINAÇÃO SOB DEMANDA
A implementação da memória virtual geralmente acontece com Paginação sob Demanda. Existem sistemas que implementam a segmentação sob demanda, mas os algoritmos de implementação são mais complicados.
A paginação sob demanda é semelhante a paginação com swap, sendo que a diferença é de que as páginas só são carregadas a memória principal caso exista a necessidade. Enquanto no swap são manipulados processos, na paginação são manipuladas páginas.
Falta de página e Substituição
Pode acontecer, e o gerenciamento de memória faz acompanhamento deste problema, de que quando uma página necessária for buscada na memória ela não esteja realmente lá. O que acontece é que essa página é buscada em disco.
No caso de a memória não comportar esta nova página entra em ação o mecanismo de substituição de Página. O processo consiste em verificar uma área de memória que não esteja em uso e levava ao disco (swap out). Depois disso a página faltante é carregada a memória para continuar a execução.
Existem vários algoritmos para efetuar essa substituição de página, entre eles:
- Substituição de Página FIFO
- Substituição de Página Ótimo
- Substituição LRU (Least Recent Used)
- Segunda Chance
- Substituição Baseado em Contagem