Informática, perguntado por Luifralo, 8 meses atrás

Diferencie alocação contigua simples de alocação particionada estática e dinâmica

Soluções para a tarefa

Respondido por Usuário anônimo
8

Resposta:Na memória principal residem os programas em execução.

Memória secundária são mecanismos de armazenamento permanente, são mais abundantes e baratas.

Para um programa ser executado deve ser carregado na memória principal.

Gerenciamento complexo em sistemas multiprogramáveis com múltiplos usuários utilizando-a eficientemente.

9.2 – Alocação Contígua Simples

Implementada nos primeiros Sistemas Operacionais e ainda existentes em alguns sistemas monoprogramáveis.

Memória dividida em duas partes, Sistema Operacional e programa do usuário.

O programador tem controle sobre toda a memória principal, podendo acessar qualquer posição da memória, inclusive onde está residente o Sistema Operacional.

Um mecanismo de proteção utilizado é delimitar a área do Sistema Operacional que delimita a área do mesmo.

Fácil implementação e código reduzido, porém Ineficiência no uso do processador e da memória pois apenas um usuário pode dispor desse recurso.

Programas limitados ao tamanho da memória disponível.

Overlay (sobreposição) – Solução encontrada para dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando uma mesma área de memória.

A definição das áreas de Overlay são de responsabilidade do programador através de comandos específicos da linguagem utilizada.

9.3 – Alocação Particionada

A eficiência da multiprogramação exige que vários programas estejam na memória ao mesmo tempo, vindo a necessidade de organização da memória.

9.3.1 – Alocação Particionada Estática:

Divisão da memória em tamanhos fixos (partições) definidos na inicialização do Sistema em função dos programas que executariam no ambiente.

A alteração do tamanho de uma partição necessita a inicialização do Sistema Operacional.

Os programas só podiam executar em uma das partições, mesmo com outras disponíveis.

Limitações impostas pelos compiladores e montadores que geravam apenas códigos absolutos.

Posteriormente, evolução dos compiladores, linkers e loaders com geração de código realocável, sendo que os programas puderam ser carregados em qualquer partição (alocação particionada estática realocável).

Surgimento da tabela de partições com informações de tamanho, uso e delimitações.

Proteção da memória através de dois registradores, início e fim da partição.

Os programas não preenchiam totalmente as partições onde eram carregados.

Problemas de fragmentação.

9.3.2 – Alocação Particionada Dinâmica

Aumento do grau de compartilhamento diminuindo o problema da fragmentação.

Partições sem tamanho fixo, onde cada programa utiliza o espaço que necessita.

Existe ainda o problema de fragmentação, conforme os programas vão terminando e deixando espaços cada vez menores.

Soluções para resolver o problema de fragmentação:

Primeira – Reunir os espaços adjacentes, produzindo um único espaço de tamanho maior.

Segunda – Realocação de todas as partições ocupadas, eliminando todos os espaços entre elas (alocação dinâmica com realocação), porém, aumentando a complexibilidade do algoritmo e consumindo mais recursos do sistema.

9.3.3 – Estratégias para Escolha da Partição

Função para determinar em qual partição livre um programa será carregado para execução.

Função de evitar, ou diminuir, o problema da fragmentação antes que ele ocorra.

O tamanho do programa é o fator mais importante para a adoção da melhor estratégia.

Best-fit:

Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização.

Lista de áreas livres alocada por tamanho, diminuindo o tempo de busca

Desvantagem de deixar pequenas áreas não contíguas, aumentando o problema da fragmentação.

Worst-fit:

Escolhe a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização.

Diminui o problema de fragmentação, deixando espaços livres maiores que permitem a um maior número de programas utilizar a memória.

First-fit:

Escolhe a primeira partição livre de tamanho suficiente para carregar o programa

Lista de áreas livres ordenada por endereços crescentemente.

Grande chance de se obter uma grande partição livre nos endereços de memórias mais altos.

Mais rápida e consome menos recursos do sistema.

9.4 – Swapping

Tenta resolver o problema de insuficiência da memória para todos os usuários.

Aloca espaço para programas que esperam por memória livre para serem processados.

O sistema escolhe um programa residente, que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in) como se nada tivesse ocorrido.

Explicação:

Perguntas interessantes