Sistemas Operacionais A3
MAPEAMENTO
O momento da execução, o endereço virtual referenciado é traduzido para um endereço físico, pois o processador manipula apenas posições da memória principal. O mecanismo de tradução destes endereços é denominado como mapeamento.
O processador apenas executa instruções e referencia dados residentes no espaço de endereçamento real; portanto, deve existir um mecanismo que transforme os endereços virtuais em endereços reais.
Esse mecanismo, conhecido por mapeamento, permite traduzir um endereço localizado no espaço virtual para um associado no espaço real.
A consequência deste mapeamento é que um programa não necessita estar necessariamente alocado em endereços contíguos na memória principal para ser executado.
Nos sistemas modernos, a tarefa de tradução de endereços virtuais é realizada pelo hardware juntamente com o sistema operacional, de forma a não comprometer seu desempenho e torná-lo totalmente transparente a usuários e aplicações.
O dispositivo de hardware responsável por essa tradução é conhecido como Unidade de Gerência de Memória (Memory Management Unit – MMU), sendo acionado sempre que se faz referência a um endereço virtual. Depois de traduzido, o endereço real pode ser utilizado pelo processador para o acesso à memória principal.
Como cada processo tem seu próprio endereçamento virtual, o mecanismo de tradução encarrega-se de manter tabelas de mapeamento exclusivas para cada processo.
A tabela de mapeamento é uma estrutura de dados existente para cada processo.
A troca de tabelas (de um processo para outro) é realizada através de um registrador, que indica a posição inicial da tabela corrente.
Toda a vez que há uma mudança de contexto, o registrador é atualizado com o endereço da nova tabela.
As tabelas mapeiam blocos de dados, cujo o tamanho determina o número de entradas existentes nas tabelas de mapeamento.
ALOCAÇÃO DE MEMÓRIA VIRTUAL POR PAGINAÇÃO
Técnica de gerência de memória onde o espaço de