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).