Gerenciamento de Memória em SO: Conceitos, Requisitos e Técnicas

Classificado em Computação

Escrito em em português com um tamanho de 3,46 KB

Gerenciamento de Memória: Definição e Funções

O gerenciamento de memória é um componente crucial dos sistemas operacionais, responsável por:

  • Trazer programas para dentro da memória principal para serem executados pelo processador.
  • Dividir dinamicamente a parte do usuário da memória principal para acomodar vários processos.
  • Alocar a memória com eficiência para empacotar processos, evitando que o processador fique ocioso.
  • Ser capaz de rodar um programa maior do que a memória real disponível.

Requisitos do Gerenciamento de Memória

1. Relocação

Capacidade de mover um programa de uma região da memória principal para outra sem invalidar as referências de memória.

  • O hardware do processador e o sistema operacional traduzem os endereços de referência de memória para o endereço físico da memória.

2. Proteção

Cada processo deve ser protegido contra interferências indesejáveis de outros processos, seja de forma acidental ou intencional.

O hardware é responsável pela verificação; caso ocorra violação, a execução é abortada.

3. Compartilhamento

Permite que vários processos acessem a mesma área de memória principal.

Vantagens:

  • Compartilhar uma mesma estrutura de dados.
  • Acessar a mesma cópia do programa, sem comprometer o requisito de proteção.

4. Organização Lógica

Capacidade de manipular programas e dados do usuário organizados em módulos.

  • Memória: sequência de bytes e palavras.
  • Programas: módulos.

Vantagens:

  • Módulos podem ser escritos e compilados independentemente.
  • É possível introduzir mecanismos de compartilhamento entre módulos.

5. Organização Física

Organização da memória do computador em dois níveis:

  • Memória principal: rápida, volátil e de alto custo.
  • Memória secundária: lenta, de armazenamento permanente e barata.

Técnicas de Gerenciamento de Memória

Partição de Memória

a) Partição Fixa

A memória principal é dividida em um número fixo de partições estáticas.

Ponto Forte: Simples de implementar, pouco overhead no sistema.

Ponto Fraco: Fragmentação interna (qualquer programa, independente do tamanho, ocupa uma partição na memória, resultando em uso ineficiente da memória principal).

Desvantagem: O número e o tamanho das partições são especificados no momento da geração do sistema.

Algoritmos de Alocação (para Partição Fixa)

  • Partição de tamanho igual
  • Partição de tamanho diferente, com duas abordagens:
    • Uma fila para cada partição.
    • Uma única fila para todas as partições.

b) Partição Dinâmica

Cada processo é alocado em uma partição do mesmo tamanho do processo.

Ponto Forte: Não há fragmentação interna.

Ponto Fraco: A memória fica cheia de buracos (fragmentação externa).

Entradas relacionadas: