Unidade G - Gerenciamento de memória

MMU – Memory Management Unit

Unidade de Gerenciamento de memória é um circuito, implementado no hardware (normalmente interno ao processador) que provê os mecanismos básicos de gerenciamento de memória. Disto, decorre que o gerenciamento de memória que o sistema operacional implementa está intimamente ligado ao hardware utilizado. A figura G.1 representa a relação MMU/memória.

É na MMU que o ocorre o mapeamento dos endereços lógicos do processo nos respectivos endereços físicos dos circuitos, além de prover algum mecanismo de proteção. A Fonte: Adaptado de: Sistemas Operacionais, CARISSIMI, Rômulo et al, pg 100, 3ª ed, Bookman.

MMU – Mecanismos de proteção

Sempre que temos processos carregados na memória, precisamos garantir que os processos não invadam a área de memória de outro processo. A seguir, são apresentados dois possíveis métodos de proteção de memória, sendo que diversos outros mecanismos podem ser implementados. Nos dois métodos a seguir, os registradores de limite são informações do contexto de execução do processo e devem ser armazenados no descritor de processo também.

Proteção por limite inferior/superior
A ideia é que a MMU saiba quais são os limites de endereçamento que o processo tem. O processo não acessar nenhum endereço abaixo do limite inferir e acima do limite superior. Se o processo tentar acessar algum endereço fora deste escopo será gerado uma interrupção informado ao sistema operacional que houve tentativa de acesso de endereço ilegal. O esquema é mostrado na figura G.2.

No esquema da figura G.2, o endereço acessado pelo processo, deverá estar entre 200 e 450. Neste caso, o endereço lógico (antes da MMU) será o mesmo endereço físico (depois da MMU).  Caso esteja fora do range estabelecido pelos registradores, a MMU gera uma interrupção e encerra o processo.

Proteção por limite/base
Outro mecanismo de proteção da memória é uso do esquema registrador limite/base (figura G.3) em que a MMU sabe o limite superior e calcula o deslocamento do registrador base para acessar o endereço. Aqui já temos um mecanismo de mapeamento entre o endereço lógico e o endereço físico (real).