1 Arquitetura de Sistem as Operacionais Fabiano Utiyam a Capítulo 9 Gerência de Mem ória 9/12 I ntro... Show
Ar qu it e t u r a de Sist e m a s Ope r a cion a is Fa bia n o Ut iya m a Ca pít u lo 9 Ge r ê n cia de M e m ór ia 9/1 I n t r odu çã o • Nos sistemas monoprogramáveis a gerência de memória não é muito complexa • Nos sistemas multiprogramáveis ela se torna crítica, devido à necessidade de se maximizar o número de usuários e aplicações utilizando eficientemente o espaço da memória principal 9/2 Fu n çõe s Bá sica s • 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 9/3 Fu n çõe s Bá sica s • A gerência de memória deve tentar manter na memória principal o maior número de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais • Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados (swapping) 9/4 Fu n çõe s Bá sica s • A gerência de memória deve permitir a execução de programas que sejam maiores que a memória física disponível • Implementada através de técnicas como: – Overlay – Memória virtual 9/5 Fu n çõe s Bá sica s • Em um ambiente de multiprogramação, o sistema operacional deve proteger as áreas de memória ocupadas por cada processo, além da área onde reside o próprio sistema 9/6 Aloca çã o Con t ígu a Sim ple s • Foi implementada nos primeiros sistemas operacionais, e ainda está presente em alguns sistemas monoprogramáveis • A memória principal é subdividida em duas áreas: – Uma para o sistema operacional – Outra para o programa do usuário 9/7 Aloca çã o Con t ígu a Sim ple s • O programador deve desenvolver suas aplicações preocupado, apenas, em não ultrapassar o espaço de memória disponível • Como o usuário tem acesso a toda memória principal, alguns sistemas implementam proteção através de um registrador que delimita as áreas do sistema operacional e do usuário • Apenas um usuário dispõe dos recursos 9/8 Aloca çã o Con t ígu a Sim ple s Memória Principal Sistema Operacional Área para programa 9/9 Aloca çã o Con t ígu a Sim ple s Memória Principal Memória Principal Sistema Operacional Área para programa Registrador Sistema Operacional Programa do usuário Área livre 9/10 Té cn ica s de Ove r la y • O programa alocada na memória é dividido em módulos, de forma que seja possível a execução independente de cada módulo, utilizando uma mesma área de memória • Essa técnica é chamada de overlay 9/11 Té cn ica de Ove r la y Memória Principal 2 Kb Sistema Operacional Cadastramento 3 Kb Módulo principal 4 Kb 4 Kb Área de overlay Impressão 2 Kb 1 Kb Área livre Área não utilizada 2 Kb 9/12 Té cn ica de Ove r la y • Pode trazer implicações no desempenho das aplicações, devido à possibilidade de transferência excessiva dos módulos entre a memória principal e secundária 9/13 Aloca çã o Pa r t icion a da Est á t ica • Nos primeiros sistemas multiprogramáveis, a memória era dividida em pedaços de tamanho fixo, chamados partições • O tamanho das partições, estabelecido na fase de inicialização do sistema, era definido em função do tamanho dos programas que executariam no ambiente 9/14 Aloca çã o Pa r t icion a da Est á t ica • Sempre que fosse necessária a alteração do tamanho de uma partição, o sistema deveria ser desativado e reinicializado com uma nova configuração • Esse tipo de gerência de memória é conhecido como alocação particionada estática ou fixa 9/15 Alocação Particionada Estática Memória Principal Tabela de partições Partição Tamanho 1 2 Kb 2 5 Kb 3 8 Kb Sistema Operacional Programas a serem executados: E D C B A 3 Kb 6 Kb 1 Kb 4 Kb 2 Kb Partição 1 2 Kb Partição 2 5 Kb Partição 3 8 Kb 9/16 Aloca çã o Pa r t icion a da Est á t ica Absolu t a • Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem disponíveis • A esse tipo de gerência de memória chamou-se alocação particionada estática absoluta 9/17 Aloca çã o Pa r t icion a da Est á t ica Absolu t a Memória Principal Sistema Operacional C A 1 Kb 2 Kb E B 3 Kb 4 Kb D Partição 1 2 Kb Partição 2 5 Kb Partição 3 8 Kb 6 Kb 9/18 Aloca çã o Pa r t icion a da Est á t ica Re locá ve l • No código relocável, todos os programas podem ser executados a partir de qualquer partição 9/19 Aloca çã o Pa r t icion a da Est á t ica Re locá ve l Memória Principal Sistema Operacional D E 6 Kb 3 Kb Programa C 2 Kb Programa A 5 Kb Programa B 8 Kb 9/20 Ta be la de Aloca çã o de Pa r t içõe s • Para manter o controle sobre quais partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu tamanho e se está em uso 9/21 Ta be la de Aloca çã o de Pa r t içõe s Memória Principal Partição Tamanho Livre 1 2 Kb Não 2 5 Kb Sim 3 8 Kb Não Sistema Operacional 1 Programa C 2 Área livre 3 Programa B 9/22 Pr ot e çã o n a Aloca çã o Pa r t icion a da • Neste esquema de alocação de memória a proteção baseia-se em dois registradores, que indicam os limites inferior e superior da partição onde o programa está sendo executado 9/23 Pr ot e çã o n a Aloca çã o Pa r t icion a da Memória Principal Sistema Operacional Endereço inicial Endereço final 9/24 Fr a gm e n t a çã o I n t e r n a • Tanto nos sistemas de alocação absoluta quanto nos de alocação relocável os programas, normalmente, não preenchem totalmente as partições onde são carregados • Este tipo de problema, decorrente da alocação fixa das partições, é conhecido como fragmentação interna • Exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MFT da IBM 9/25 Fr a gm e n t a çã o I n t e r n a Memória Principal Sistema Operacional Programa C 1 Kb Programa A D B 6 Kb 4 Kb 3 Kb Programa E 5 Kb 9/26 Aloca çã o Pa r t icion a da D in â m ica • Na alocação particionada dinâmica, ou variável, cada programa utilizaria o espaço necessário, tornando essa área sua partição 9/27 Aloca çã o Pa r t icion a da D in â m ica A E C B 2 Kb 3 Kb 1 Kb 4 Kb Memória Principal Memória Principal Sistema Operacional Sistema Operacional Programa B 4 Kb Programa C 1 Kb Programa E 3 Kb Programa A 2 Kb 15 Kb 5 Kb 9/28 Fr a gm e n t a çã o Ex t e r n a • Um diferente tipo de fragmentação começará a ocorrer, quando os programas forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos programas 9/29 Fr a gm e n t a çã o Ex t e r n a Memória Principal Sistema Operacional 4 Kb Programa C 3 Kb D 6 Kb Programa A 5 Kb 9/30 Solu çã o pa r a a Fr a gm e n t a çã o Ex t e r n a Memória Principal Memória Principal Sistema Operacional Sistema Operacional 4 Kb 8 Kb Programa C 3 Kb Programa A Programa A 5 Kb 5 Kb 9/31 Solu çã o pa r a a Fr a gm e n t a çã o Ex t e r n a Memória Principal Memória Principal Sistema Operacional Sistema Operacional Programa C 4 Kb Programa A Programa C Relocação 3 Kb Programa A 12 Kb 5 Kb 9/32 Aloca çã o Pa r t icion a da D in â m ica • A realização da relocação dinâmica reduz em muito o problema da fragmentação, porém a complexidade do seu algoritmo e o consumo de recurso do sistema, como processador e área em disco, podem torná-la inviável • Um exemplo de sistema operacional que implementou esse tipo de gerência de memória é o OS/MVT da IBM 9/33 Est r a t é gia s de Aloca çã o de Pa r t içã o • Os sistema operacionais implementam, basicamente, três estratégias para determinar em qual área livre um programa será carregado para execução • A melhor estratégia depende de uma série de fatores, sendo o mais importante o tamanho dos programas processados no ambiente 9/34 Be st - fit • A melhor partição é escolhida, ou seja, aquela em que o programa deixa o menor espaço sem utilização • Neste algoritmo, a lista de áreas livres está ordenada por tamanho, diminuindo o tempo de busca por uma área desocupada 9/35 Be st - Fit Sistema Operacional Memória Principal Programa C Sistema Operacional 4 Kb Programa C Programa F F 1 Kb Programa A Área livre 5 Kb 2 Kb Programa A 3 Kb 9/36 W or st - fit • A pior partição é escolhida, ou seja, aquela em que o programa deixa o maior espaço sem utilização 9/37 W or st - Fit Memória Principal Sistema Operacional Sistema Operacional 4 Kb Programa C (b) Worst-fit Programa C Programa F F 1 Kb 5 Kb Área livre Programa A 4 Kb Programa A 3 Kb 9/38 Fir st - fit • A primeira partição livre de tamanho suficiente para carregar o programa é escolhida • Nesse algoritmo, a lista de áreas livres está ordenada por endereços crescentemente • Das três estratégias apresentadas, a first-fit é a mais rápida, consumindo menos recursos do sistema 9/39 Fir st - Fit Memória Principal Sistema Operacional 4 Kb Programa C F 1 Kb Sistema Operacional 5 Kb Programa F Programa A Área livre 3 Kb Programa C 3 Kb Programa A 9/40 Sw a ppin g • A técnica de swapping foi introduzida para contornar o problema da insuficiência de memória principal • O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menores chances de ser escalonado 9/41 Sw a ppin g Memória Principal Sistema Operacional Programa A Programa B H Programa E Swap out Programa G B Memória Principal Sistema Operacional Programa A Programa H Programa E Swap in B Área Livre Arquivo de Swap 9/42 Sw a ppin g • Os primeiros sistemas operacionais que implementaram esta técnica surgiram na década de 1960, como o CTSS do MIT e OS/360 da IBM 9/43 Ex e r cícios • Quais as funções básicas da gerência de memória? • Qual a diferença entre fragmentação interna e externa da memória principal? • Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável? 9/44 Ex e r cícios • Considere um sistema computacional com 40 Kb de memória principal e que 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? 9/45 This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF. Qual a limitação da alocação Particionada estática absoluta em relação a alocação estática Reloccável?3) Qual a limitação da alocação particionada estática absoluta em relação à alocação estática relocável? R: A grande diferença entre a alocação particionada estática absoluta e a alocação estática relocável é o local na memória principal onde programa é carregado.
Qual era a principal característica da alocação Particionada estática?9.3.1 – Alocação Particionada Estática:
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.
Quais são as estratégias de alocação de partição da memória?Técnicas de Alocação de Memória: - Alocação Contígua Simples; - Alocação Particionada Estática; - Alocação Particionada Estática Absoluta; - Alocação Particionada Estática Relocável; - Alocação Particionada Dinâmica.
Qual o principal problema encontrado nas principais estratégias de alocação de arquivos?Um problema na alocação encadeada é que ela só permite o acesso seqüencial aos blocos dos arquivos, não possuindo acesso direto aos blocos e desperdiça espaço nos blocos com o armazenamento de ponteiros.
|