Memoria Virtual e memoria Cache
Um dos objetivos buscados na utilização de memória virtual é otimizar o uso da memória principal usando a memória secundária como backup. Neste caso, a memória principal é o nível rápido e de pequena capacidade da hierarquia de memória, enquanto que a memória secundária (discos magnéticos, principalmente) constituem o nível lento e de maior capacidade.
A aplicação típica de memória virtual é mapear um grande espaço de endereçamento a uma memória primária fisicamente menor. Por exemplo, com 32 bits de endereço, o espaço de endereçamento virtual é de 4 Gbytes—memórias primárias têm capacidades da ordem de dezenas deMbytes.
Outra aplicação surge na multiprogramação, onde pode-se mapear um espaço de endereçamento pequeno a uma memória primária maior.
Com a utilização de memória virtual, liberam-se programas e programadores de considerações sobre o posicionamento físico de suas variáveis na memória. Para tanto, opera-se com dois espaços de endereçamento:
Espaço físico M: conjunto de endereços da memória principal
Espaço virtual V : conjunto de endereços gerados pelo processador
Endereços virtuais precisam ser traduzidos em termos de endereços físicos durante a execução de programas:
Desempenho do sistema de memória virtual depende da eficiência da tradução de endereços. A operação da memória virtual envolve a cooperação do sistema operacional com os recursos do computador.
O mapeamento de endereço virtual para endereço físico requer a manutenção da informação sobre quais dados estão em memória.
Conceitos básicos (revisão)
Algumas questões básicas envolvidas no projeto de sistemas de memória virtual são:
1. O tamanho e a natureza dos blocos de informação que são transferidos entre as memórias primária e secundária ! uso de blocos devido a características de acesso à memória secundária
*blocos de tamanho fixo: paginação
_ blocos de tamanho variável: segmentação
2. Política de alocação de espaço e de troca de blocos