Introdução

 

Os algoritmos de gerência de memória variam de uma abordagem primitiva próxima à máquina a estratégias de paginação e segmentação. Cada abordagem tem suas próprias vantagens e desvantagens. A seleção de um método de gerência de memória para um sistema específico depende de muitos fatores, especialmente do projeto de hardware do sistema. Muitos algoritmos requerem suporte de hardware.

 

A memória é fundamental para a operação de um sistema de computação moderno. A memória consiste em um grande vetor de palavras ou bytes, cada qual com seu próprio endereço. A CPU busca instruções da memória de acordo com o valor do contador de programa. Essas instruções também poderão causar carga e armazenamento em endereços de memória específicos.

 

Um ciclo típico de execução de instrução, por exemplo, primeiro busca uma instrução da memória. Depois que a instrução tiver sido executada sobre os operandos, os resultados poderão ser armazenados de volta na memória. Observe que a unidade de memória vê apenas um fluxo de endereços de memória; não sabe como eles são gerados (o contador de instrução, indexação, indireção, endereços literais e assim por diante) ou para que servem (instruções ou dados). Da mesma forma, podemos ignorar como um endereço de memória é gerado por um programa. Estamos interessados apenas na seqüência de endereços de memória gerados pelo programa em execução.

 

A memória lógica de um processo é aquela que o processo enxerga, ou seja, aquela que o processo é capaz de endereçar e acessar usando as suas instruções. Os endereços manipulados pelo processo são endereços lógicos. Em outras palavras, as instruções de máquina de um processo especificam endereços lógicos. Por exemplo, um processo executando um programa escrito em linguagem C manipula variáveis do tipo pointer. Essas variáveis contêm endereços lógicos. Em geral, cada processo possui sua própria memória lógica, que é independente da memória lógica dos outros processos.

 

A memória física é aquela implementada pelos circuitos integrados da memória, pela eletrônica do computador. O endereço físico é aquele que vai para a memória física, ou seja, é usado para endereçar os circuitos integrados da memória.

 

O espaço de endereçamento lógico de um processo é formado por todos os endereços lógicos que esse processo pode gerar. Existe um espaço de endereçamento lógico por processo. Já o espaço de endereçamento físico é formado por todos os endereços aceitos pelos circuitos integrados de memória. 

A unidade de gerência de memória (Memory Managament Unit, MMU) é o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo sistema operacional para gerenciar a memória. Entre outras coisas, é a MMU que vai mapear os endereços lógicos gerados pelos processos nos correspondentes endereços físicos que serão enviados para a memória.

Fontes

SILBERSCHATZ, Abraham, et al. Sistemas Operacionais - Conceitos e Aplicações. 3ª Tiragem. Rio de Janeiro: Editora Campus, 2001.
OLIVEIRA, Rômulo Silva de, et al. Sistemas Operacionais. 2ª Edição. Porto Alegre: Editora Sagra Luzzato, 2001.