Funções básicas de gerenciamento de memória
Ensaio: Funções básicas de gerenciamento de memória. Pesquise 862.000+ trabalhos acadêmicosPor: avgvieira • 22/11/2014 • Ensaio • 1.454 Palavras (6 Páginas) • 299 Visualizações
1. Quais as funções básicas da gerência de memória?
* Reduzir o número de operações de E/S nesta transferência (pois a memória secundária é lenta);
* Manter na memória o maior número possível de processos residentes, maximizando a utilização de recursos;
* 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;
* Oferecer mecanismos de compartilhamento de dados e informações.
2. Considere um sistema computacional com 40 Kb de memória principal e que um utilize um sistema operacional de 10 Kb que implemente alocação contígua de memória. Qual a taxa de subutilização da memória principal para um programa que ocupe 20 Kb de memória?
Digamos que o programa e o sistema operacional juntos ocupem ¾ da memória principal, portanto temos 25% de subutilização da memória.
3. Suponha que um sistema computacional de 64 KB de memória principal e que utilize um Sistema Operacional de 14 KB que implemente alocação contígua de memória. Considere também um programa de 90 KB,
formado por um módulo principal de 20 KB e três módulos independentes, cada um com 10 KB, 20 KB e 30KB. Como o programa poderia ser executado utilizando-se apenas a técnica de overlay?
A memória deveria ser dividida em duas partes, uma para o módulo principal “20 Kb” e a outra de overlay para carga dos módulos, em função do tamanho do maior módulo “30 Kb”. Pois só há 50 Kb para a execução do programa.
4. Considerando o exercício anterior, se o módulo de 30 KB tivesse seu tamanho aumentado para 40 KB, seria possível executar o programa? Caso não possa, como o problema poderia ser contornado?
Não. Se não tiver como aumentar a memória real, a solução poderia ser tentar alterar o programa para o que o módulo fosse dividido em outros módulos menores e independentes.
5. Qual a diferença entre fragmentação interna e externa da memória principal?
A fragmentação interna trata-se de uma porção de memória de determinada partição que não é utilizada devido os requisitos reduzidos dos processos. Já a fragmentação externa ocorre quando existe um espaço suficiente de memória livre para satisfazer uma requisição, porém não é contínuo e portanto não pode ser utilizado.
6. Suponha um sistema computacional com 128 KB de memória principal e que utilize um Sistema Operacional de 64 KB que implemente alocação particionada estática relocável. Considere também que o sistema foi inicializado com três
partições: P1 (8 KB), P2 (24 KB) e P3 (32 KB). Calcule a fragmentação interna da memória principal após a carga de três programas: PA, PB e PC.
a) P1 <- PA (6 KB); P2 <- PB (20 KB); P3 <- PC (28 KB);
2 Kb, 4 Kb, 4 Kb
b) P1 <- PA (4 KB); P2 <- PB (16 KB); P3 <- PC (26 KB);
4 Kb, 8 Kb, 6 Kb
c) P1 <- PA (8 KB); P2 <- PB (24 KB); P3 <- PC (32 KB);
Não há fragmentação interna.
7. Considerando o exercício anterior, seria possível executar quatro programas concorrentemente utilizando apenas a técnica de alocação particionada estática relocável? Se for possível, como? Considerando ainda o mesmo exercício, seria possível executar um programa de 32 KB? Se for possível, como?
Só é possível executar quatro programas concorrentemente alterando a configuração das partições do sistema e criando uma quarta partição. Já no segundo caso, seria perfeitamente possível executar um programa de 36 Kb alterando a configuração do sistema, aumentando uma das partições e diminuindo as demais partições.
8. Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável?
Na alocação particionada estática absoluta os compiladores geram códigos absolutos, ou seja, todas as referências a endereços são posições físicas na memória principal. Programas só podem ser executados em partição determinada. E na alocação estática relocável os compiladores
geram códigos relocáveis, ou seja, todas as referências a endereços são posições relativas ao início do código. Programas podem ser executados em qualquer partição.
9. Considere que os processos da tabela a seguir estão aguardando para serem executados e que cada um permanecerá na memória durante o tempo especificado. O Sistema Operacional ocupa uma área de 20 KB no início da memória e gerencia a memória utilizando um algoritmo de particionamento dinâmico modificado. A memória total disponível no sistema é de 64 KB e é alocada em blocos múltiplos de 4 KB. Os processos são alocados de acordo com sua identificação (em ordem crescente) e irão aguardar até obter a memória de que necessitam. Calcule a perda de memória por fragmentação interna e externa sempre que um processo é colocado ou retirado da memória. O Sistema Operacional compacta a memória apenas quando existem duas ou mais partições livres adjacentes.
Processos | Memória | Tempo |
1 | 30 Kb | 5 |
2 | 6 Kb | 10 |
3 | 36 Kb | 5 |
No instante de tempo inicial, com a alocação dos processos por ordem crescente e a locação em múltiplos de 4 Kb, a memória terá a posição seguinte:
Sistema Operacional | 20 Kb |
Partição do Processo 1 | 32 Kb(30 Kb úteis) |
Partição do Processo 2 | 8 Kb(6 Kb úteis) |
Área Livre | 4 Kb |
Fragmentação interna na Partição do Processo 1: 2 Kb
Fragmentação interna na Partição do Processo 2: 2 Kb
Fragmentação externa: não há
No instante de tempo 5: o Processo 1 termina sua execução.
Sistema Operacional | 20 Kb |
Área Livre | 32 Kb(30 Kb úteis) |
...