Memoria Virtual
Ernesto Massa
Memória Virtual
Técnica onde memória principal e secundária são combinadas de forma a “emular” uma memória de tamanho maior que a memória principal (real);
A memória secundária é usada como extensão da memória principal;
Permite um maior número de processos compartilhando a memória principal;
Não vincula o endereçamento dos programas aos endereços físicos da memória principal;
Programas não ficam mais limitados ao tamanho da memória principal disponível;
Minimiza o problema de fragmentação.
Memória Virtual
Espaço de Endereçamento:
Memória Principal
Espaço de
Endereçamento Real
Memória Virtual
Espaço de
Endereçamento Virtual
Estrutura Vetorial
Mapeamento
Memória
Secundária
Memória Virtual
Mapeamento:
– Realizado por hardware + S.O. nos sistemas atuais, através da MMU (Memory Management Unit - Unidade de
Gerenciamento de Memória).
– Cada processo com uma tabela de mapeamento própria.
– No momento da execução, o endereço virtual é mapeado para o endereço físico, pois o processador só acessa endereços do espaço real;
– Nas trocas de contexto, um registrador é responsável por indicar qual a tabela que deve ser utilizada.
Memória Virtual
Memória Virtual por Paginação:
– Memória Virtual e Real divididas em blocos de mesmo tamanho (páginas);
• Páginas virtuais;
• Páginas reais ou frames;
– As tabelas de páginas mapeiam os blocos de informações:
• Quanto maior o bloco, menor o tamanho das tabelas;
• Quanto maior o bloco, maior o tempo de transferência do bloco entre memória principal e secundária.
Memória Virtual
Paginação:
Espaço Virtual do Processo A
Memória Virtual
Memória Principal
Espaço de
Endereçamento Real
Espaço Virtual do Processo B
Tabela de
Páginas de A
Tabela de
Páginas de B
Page Fault
Memória
Page In
Secundária
Memória Virtual
Memória Virtual por Paginação:
– Endereço Virtual = Nº da página virtual + deslocamento;
– Um bit de validade (na tabela de páginas) indica se a