Gerência de Memória: Best-fit, Worst-fit, Overlay, Swapping e Alocação Particionada
Resumo
O documento apresenta os conceitos fundamentais da gerência de memória em sistemas operacionais, incluindo suas funções básicas e as estratégias Best-fit e Worst-fit para escolha de partições dinâmicas, com seus prós e contras. Também explica as técnicas Overlay e Swapping, a alocação contígua simples, a alocação particionada estática e dinâmica, a proteção de memória e a fragmentação externa, com o coalescing como solução. O estudante aprenderá como o sistema operacional otimiza o uso da RAM.
Pontos-chave
- A gerência de memória permite aceitar novos programas sem espaço livre, executar programas maiores que a memória física e proteger as áreas de cada processo.
- Best-fit escolhe a partição que deixa o menor espaço sem uso, mas gera pequenas áreas não contíguas e fragmentação externa.
- Worst-fit escolhe a partição que deixa o maior espaço sem uso, reduz a fragmentação, mas pode fragmentar rapidamente os maiores blocos.
- Overlay divide o programa em módulos que são executados independentemente, sobrepondo-se na mesma área de memória.
- Swapping move processos entre a memória principal e a memória secundária para aliviar a insuficiência de memória em ambientes multiprogramados.
- Na alocação particionada dinâmica, cada programa usa apenas o espaço necessário, e a fragmentação externa é tratada pelo coalescing ou pela relocação das partições.
Conceitos Fundamentais em Gerência de Memória
1. Funções Básicas da Gerência de Memória
As funções essenciais da gerência de memória são:
- Permitir que novos programas sejam aceitos mesmo que não exista espaço livre de memória.
- Permitir a execução de programas maiores do que a memória física.
- Proteger as áreas de memória ocupadas por cada processo.
2. Estratégias de Escolha de Partição Dinâmica
Considerando as estratégias para escolha de partição dinamicamente, conceitue as estratégias Best-fit e Worst-fit, especificando prós e contras de cada uma:
Best-fit
Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização. A lista de áreas livres é alocada por tamanho, diminuindo o tempo de busca.
- Pró: Busca rápida se a lista for ordenada.
- Contra: Deixa pequenas áreas não contíguas, aumentando o problema da fragmentação externa.
Worst-fit
Escolhe a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização.
- Pró: Diminui o problema de fragmentação, deixando espaços livres maiores que permitem a um maior número de programas utilizar a memória.
- Contra: Pode fragmentar rapidamente os maiores blocos disponíveis.
3. O que é Overlay?
Técnica que busca dividir o programa em módulos, permitindo a execução independente de cada módulo, utilizando a mesma área de memória (sobreposição).
4. O que é Swapping e para que é utilizada esta técnica?
Swapping é uma técnica criada na tentativa de melhorar o problema da insuficiência de memória durante a execução de alguns processos em ambientes multiprogramados. Consiste em mover processos entre a memória principal e a memória secundária.
5. Explique a Alocação Contígua Simples
Implementada nos primeiros sistemas operacionais. A memória principal é dividida em duas partes: uma para o sistema operacional (S.O.) e a outra para o programa do usuário. Todos os programas estão limitados ao tamanho da memória principal disponível para o usuário.
Notas Adicionais sobre Alocação de Memória
Contexto e Otimização da RAM
A RAM é subdividida em duas áreas: S.O. e Programa do Usuário. Historicamente, o usuário tinha o controle sobre toda a memória principal, inclusive a área do S.O. Como a memória é um recurso escasso e caro, o S.O. deve ser capaz de otimizar seu uso, maximizando o número de usuários e aplicações.
- Programas e Aplicações são armazenados na memória secundária.
- O processador executa apenas instruções da memória principal (RAM), que oferece acesso direto e mais rápido.
Alocação Particionada Estática
Consiste na divisão da RAM em tamanhos fixos (partições). O tamanho das partições é definido em função do tamanho dos programas que seriam executados no ambiente.
- Alocação Particionada Estática Absoluta: Programas com códigos absolutos, fazendo referência direta ao endereço RAM.
- Alocação Particionada Estática Relocável: Código relocável, com referências relativas ao código e não ao endereço físico.
Proteção de Memória
A proteção é baseada em dois registradores que definem os limites inferior e superior da partição onde o programa está sendo executado. Se o programa extrapolar esses limites, uma violação de acesso é gerada pelo S.O.
Alocação Particionada Dinâmica
Esta estratégia resolve o problema da fragmentação interna e aumenta o grau de compartilhamento da memória, pois cada programa utiliza apenas o espaço necessário, tornando este o tamanho de sua partição.
Problema e Solução (Coalescing)
Problema: Programas vão terminando e deixando espaços cada vez menores na memória, impedindo a alocação de novos programas (fragmentação externa).
Solução: Apenas espaços livres adjacentes são reunidos (coalescing). Em casos mais extremos, é necessária a relocação de todas as partições ocupadas, eliminando os espaços entre elas e criando uma única área livre contígua.
Estratégia First-fit
A primeira partição livre de tamanho suficiente para carregar o programa é escolhida. É a estratégia mais rápida, consumindo menos recursos de processamento para a busca.
Baixar
PDF Word HTMLPerguntas frequentes
O que é Overlay?
Overlay é uma técnica que divide o programa em módulos, permitindo a execução independente de cada módulo na mesma área de memória, por meio de sobreposição.
Para que serve o Swapping?
Swapping foi criado para melhorar a insuficiência de memória durante a execução de processos em ambientes multiprogramados, movendo processos entre a memória principal e a secundária.
Qual a diferença entre Best-fit e Worst-fit?
Best-fit escolhe a partição que deixa o menor espaço livre, enquanto Worst-fit escolhe a que deixa o maior espaço livre. O primeiro busca rapidez mas gera fragmentação, o segundo reduz fragmentação mas pode fragmentar os maiores blocos.
O que é coalescing?
Coalescing é a reunião de espaços livres adjacentes na memória, combatendo a fragmentação externa causada pelo término de programas.
Teste-se
Cartões de revisão
Clique em um cartão para ver a resposta.
Teste
Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.