Arquitetura de Sistem as Operacionais Fabiano Utiyam a Capítulo 9 Gerência de Mem ória 9/1
I ntroduçã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
Funções Básicas 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
Funções Básicas 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
Funções Básicas 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
Funções Básicas 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 Contígua Sim ples 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 Contígua Sim ples 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 Contígua Sim ples Memória Principal Sistema Operacional Área para programa 9/9
Alocação Contígua Sim ples Memória Principal Sistema Operacional Registrador Memória Principal Sistema Operacional Área para programa Programa do usuário Área livre 9/10
Técnicas de Overlay 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écnica de Overlay Memória Principal 2 Kb Sistema Operacional Cadastramento 3 Kb Módulo principal 4 Kb 4 Kb Área de overlay Impressão 1 Kb Área livre 2 Kb Área não utilizada 2 Kb 9/12
Técnica de Overlay 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 Particionada Estática 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 Particionada Estática 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 Sistema Operacional Partição Tamanho Partição 1 2 Kb 1 2 Kb 2 5 Kb 3 8 Kb Partição 2 5 Kb Programas a serem executados: E D C B A Partição 3 8 Kb 3 Kb 6 Kb 1 Kb 4 Kb 2 Kb 9/16
Alocação Particionada Estática Absoluta 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 Particionada Estática Absoluta Memória Principal Sistema Operacional C A Partição 1 2 Kb 1 Kb 2 Kb E B Partição 2 5 Kb 3 Kb 4 Kb D 6 Kb Partição 3 8 Kb 9/18
Alocação Particionada Estática Relocável No código relocável, todos os programas podem ser executados a partir de qualquer partição 9/19
Alocação Particionada Estática Relocável Memória Principal Sistema Operacional Programa C 2 Kb D E Programa A 5 Kb 6 Kb 3 Kb Programa B 8 Kb 9/20
Tabela de Alocação de Partições 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
Tabela de Alocação de Partições Memória Principal Partição Tamanho Livre Sistema Operacional 1 2 Kb Não 1 Programa C 2 5 Kb Sim 3 8 Kb Não 2 Área livre 3 Programa B 9/22
Proteção na Alocação Particionada 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
Proteção na Alocação Particionada Memória Principal Sistema Operacional Endereço inicial Endereço final 9/24
Fragm entação I nterna 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
Fragm entação I nterna Memória Principal Sistema Operacional D B Programa C Programa A 1 Kb 6 Kb 4 Kb 3 Kb Programa E 5 Kb 9/26
Alocação Particionada Dinâ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 Particionada Dinâm ica Memória Principal Memória Principal Sistema Operacional Sistema Operacional Programa B 4 Kb Programa C 1 Kb A E C B 15 Kb Programa E 3 Kb 2 Kb 3 Kb 1 Kb 4 Kb Programa A 2 Kb 5 Kb 9/28
Fragm entação Externa 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
Fragm entação Externa Memória Principal Sistema Operacional 4 Kb Programa C D 3 Kb 6 Kb Programa A 5 Kb 9/30
Solução para a Fragm entação Externa Memória Principal Memória Principal Sistema Operacional Sistema Operacional 4 Kb Programa C 8 Kb 3 Kb Programa A Programa A 5 Kb 5 Kb 9/31
Solução para a Fragm entação Externa Memória Principal Memória Principal Sistema Operacional Sistema Operacional Programa C 4 Kb Programa A Programa C 3 Kb Relocação Programa A 12 Kb 5 Kb 9/32
Alocação Particionada Dinâ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
Estratégias de Alocação de Partiçã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
Best- 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
Best- Fit Sistema Operacional Memória Principal Sistema Operacional Programa C 4 Kb Programa C Programa A F 1 Kb 5 Kb Programa F Área livre 2 Kb Programa A 3 Kb 9/36
W orst- fit A pior partição é escolhida, ou seja, aquela em que o programa deixa o maior espaço sem utilização 9/37
W orst- 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 4 Kb Programa A Programa A 3 Kb 9/38
First- 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
Memória Principal First- Fit Sistema Operacional 4 Kb Programa C F 1 Kb 5 Kb Sistema Operacional Programa F Programa A Área livre Programa C 3 Kb 3 Kb Programa A 9/40
Sw apping 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 apping Memória Principal Sistema Operacional H Programa A Programa B Programa E Swap out Programa G B Memória Principal Sistema Operacional B Swap in Programa A Programa H Programa E Área Livre Arquivo de Swap 9/42
Sw apping 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
Exercí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
Exercí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.