Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 - Quais as funções básicas da gerência de memória? Em geral, programas são armazenados em memórias secundárias, como disco ou fita, por ser um meio não-volátil, abundante e de baixo custo. Como o processador somente executa instruções localizadas na memória principal, o sistema operacional deve sempre transferir programas da memória secundária para a memória principal antes de serem executados.Os sistemas de gerência de memória podem ser divididos em duas grandes categorias: aqueles que movem os processos entre a memória principal e o disco (swapping e paginação), e aqueles que não movimentam os processos entre tais dispositivos de armazenamento. 2 - Considere um sistema computacional com 40kb de memória principal e que utilize um sistema operacional de 10kb que implemente alocação contígua de memória. Qual a taxa de subutilização da memória principal para um programa que ocupe 20kb de memória? Existirá uma não utilização de memória equivalente a 10KB. 3 - Suponha um sistema computacional com 64kb de memória principal e que utilize um sistema operacional de 14kb que implemente alocação contígua de memória. Considere também um programa de 90kb, formado por um módulo principal de 20kb e três módulos independentes, cada um com 10kb, 20kb e 30kb. Como o programa poderia ser executado utilizando-se apenas a técnica de overlay? O módulo principal é carregado em memória , assim sendo , quando o mesmo referênciar os módulos posteriores o mesmo é carregado na memória na área de “overlay”. Caso o módulo principal referencie o mesmo que já esteja em memória , a carga não é realizada;caso contrário , o novo módulo irá sobrepor o que estiver na área de “overlay”. 4- Considerando o exercício anterior, se o módulo de 30kb tivesse seu tamanho aumentado para 40kb, seria possível executar o programa? Caso não possa, como o problema poderia ser contornado? Não executária caso ocorrece o aumento do módulo acontecesse. O programa so executaria completo caso o aumento da memória aumentasse ou o tamanho do módulo principal diminuisse. 5- Qual a diferença entre fragmentação interna e fragmentação externa da memória principal? Interna -> São espaços menores deixados na mémoria já pré definidas ; Uma vez que os programas carregado internamente não ocupam todo o espaço ali reservado. Externa ->São espaços menores deixados em mémoria a medida que os programas são executados não permitindo assim o ingresso de novos programas. 6- Suponha um sistema computacional com 128kb de memória principal e que utilize um sistema operacional de 64kb que implemente alocação particionada estática relocável. Considere também que o sistema foi inicializado com três partições: P1 (8kb), P2 (24kb) e P3 (32kb). Calcule a fragmentação interna da memória principal após a carga de três programas PA, PB e PC. a) P1 ¬ PA (6kb); P2 ¬ PB (20kb); P3 ¬ PC (28kb) P1 = 2KB ; P2=4KB ; P3=4KB b) P1 ¬ PA (4kb); P2 ¬ PB (16kb); P3 ¬ PC (26kb) P1 = 4KB ; P2=8KB ; P3=6KB c) P1 ¬ PA (8kb); P2 ¬ PB (24kb); P3 ¬ PC (32kb) P1 = 0KB ; P2=0KB ; P3=0KB 7 - Considerando o exercício anterior, seria possível executar quatro programas concorrentemente utilizando apenas a técnica de locação particionada estática relocável? Se for possível, como? Considerando ainda o mesmo exercício, seria possível executar um programa de 36kb? Se for possível, como? Não seria possível pois de acordo com o controle de tabelas , mesmo se em algum dos espaços nas partições fosse preenchido , o mesmo constaria como OCUPADO. Seria possível executar um programa de 36 KB caso fosse usado a técnica de “overlay”. 8 - Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável? Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem disponíveis. No código absoluto, todas as referências a endereços no programa são posições físicas na memória principal,ou seja, o programa só poderia ser carregado a partir do endereço de memória especificado no seu próprio código. No código relocável, todas as referências a endereços no programa são relativas ao início do código e não a endereços físicos de memória. Desta forma, os programas puderam ser executados a partir de 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 20kb 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 64kb e é alocada em blocos múltiplos de 4kb. Os processos 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 Em P1 : S.O ocupa ocupa 5 blocos (5 * 4 = 20KB) P1 (8 * 4 = 32KB) , fragmentação interna de 2KB , fragmentação externa de 12KB (3 Blocos) Em P2 : S.O ocupa ocupa 5 blocos (5 * 4 = 20KB) P2 (2 * 4 = 8KB) , fragmentação interna de 2KB , fragmentação externa de 36KB (9 Blocos) Em P3 : S.O ocupa ocupa 5 blocos (5 * 4 = 20KB) P1 (9 * 4 = 36KB) , fragmentação interna de 0KB , fragmentação externa de 8KB (2 Blocos) 10 - Considerando as estratégias para escolha da partição dinamicamente, conceitue as estratégias best-fit e worst-fit especificando prós e contras de cada uma. Best-fit -> Melhor escolha de espaço de alocação para a execução do programa desejado. PART1 = 32KB -> PB=32kb ; PART2 = 30KB -> PB=29kb ; PART3 = 6KB -> PC=4kb. Menor desuso de alocação interna . Maior uso da memória de forma geral. Menor número de partições disponíveis para a execução de novos programas , assim sendo a memória estará grande parte do seu tempo ocupada. Worst-fit -> Pior escolha de espaço de alocação para a execução do programa desejado. PART1 = 32KB -> PB=6kb ; PART2 = 30KB -> PB=2kb ; PART3 = 6KB -> PC=1kb. Maior número de partições disponíveis para a execução de novos programas , assim sendo a memória estará grande parte do seu tempo ociosa ou com espaço. Maior desuso de alocação interna . Maior desuso da memória de forma geral. 11 - Considere um sistema que possua as seguintes áreas livres na memória principal, ordenadas crescentemente: 10kb, 4kb, 20kb, 18kb, 7kb, 9kb, 12kb e 15kb. Para cada programa abaixo, qual seria a partição alocada utilizando-se as estratégias first-fit, best-fit e worst-fit? a) 12kb First-fit : 20kb Best-fit : 12kb Worst-fit: 20kb b) 10kb First-fit : 10kb Best-fit : 10kb Worst-fit: 20kb c) 9kb First-fit : 10kb Best-fit : 9kb Worst-fit: 20kb 12 - Um sistema utiliza alocação particionada dinâmica como mecanismo de gerência de memória. O sistema operacional aloca uma área de memória total de 50kb e possui, inicialmente, os programas da tabela a seguir: 5 kb Programa A 3 kb Programa B 10 kb Livre 6 kb Programa C 26 kb Livre Realize as operações abaixo seqüencialmente, mostrando o estado da memória após cada uma delas. Resolva a questão utilizando as estratégias best-fit, worst-fit e firstfit: a) alocar uma área para o programa D que possui 6 kb; b) liberar a área do programa A; 5 kb LIVRE 3 kb Programa B 6 kb Programa D 4 kb Livre 6 kb Programa C 26 kb Livre c) alocar uma área para o programa E que possui 4 kb. 4 kb Programa B 1 kb LIVRE 3 kb Programa B 6 kb Programa D 4 kb Livre 6 kb Programa C 26 kb Livre 13 - O que é swapping e para que é utilizada essa técnica? A técnica de swapping foi introduzida para contornar o problemada insuficiência de memória principal. Essa técnica é aplicada à gerência de memória para programas que esperam por memória livre para serem executados. Nesta situação, o sistema escolhe um processo residente, que é transferido da me mória principal para a memória secundária (swap out), geralmente disco. Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) e pode continuar sua execução como se nada tivesse ocorrido. 14 - Por que é importante o uso de um loader com relocação dinâmica para que a técnica de swapping possa ser implementada? O loader com relocação dinâmica permite que os programas possam ser retirados da memória principal para a me mória secundária e trazidos novamente para a memória principal em qualquer posição.
Compartilhar