Memoria Virtual
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Sistemas Operacionais
09 - Memória Virtual
Prof. Sílvio Fernandes
1
Introdução
• Há muitos anos programadores já eram obrigados a lidar com programas maiores que a quantidade de memória física disponível
• A solução era dividir o programa em módulos chamados overlays
• O overlay 0 era o 1º a ser executado, e chamava o próximo, que era carregado em seu lugar na memória, quando o 1º terminava
• O principal problema é que a divisão em overlays era feita pelo programador
2
Introdução
• A solução foi o método conhecido como memória virtual, que permite que o tamanho total de um programa (código, dados e pilha) pode exceder a quantidade total de memória física disponível para ele
• O SO mantém as partes ativas do programa na memória e o restante no disco
3
Paginação
• Em qualquer computador existe um conjunto de endereços de memória que os programas podem gerar ao serem executados
• Quando um programa usa uma instrução do tipo MOV REG, 1000 ele deseja copiar o conteúdo da posição de memória 1000 para o registrador REG ou vice-versa
• Endereços gerados pelo programa são chamados de endereços virtuais e constituem o espaço de endereçamento virtual
4
Paginação
• Em computadores sem memória virtual o endereço virtual é idêntico ao endereço físico
• Em computadores com memória virtual esse endereço será passado a uma MMU (memory management unit) que mapeia endereços virtuais em físicos
5
Paginação
• Localização e função da MMU
6
Paginação
• Ex: Um computador que pode gerar endereços virtuais de 16 bits (de 0 a 64K), mas que só possui 32K de memória física. Mas é possível escrever programas de
64K
7
Paginação
• O espaço de endereçamento virtual é dividido em unidades denominadas páginas. As unidades correspondentes em memória física são as molduras de página
•