34
GERENCIA DE MEMORIA

GERENCIA DE MEMORIA.ppt

Embed Size (px)

Citation preview

Page 1: GERENCIA DE MEMORIA.ppt

GERENCIA DE MEMORIA

Page 2: GERENCIA DE MEMORIA.ppt

Introdução e funções básicas Idealmente os programadores querem uma memória que seja • Grande. • Rápida. • Não Volátil. • Baixo custo. Infelizmente a tecnologia atual não comporta tais memórias. A maioria dos computadores utiliza Hierarquia de Memórias

que combina: Uma pequena quantidade de memória cache, volátil, muito

rápida e de alto custo. Uma grande memória principal (RAM), volátil, com centenas de

MB ou poucos GB, de velocidade e custo médios. • Uma memória secundária, não volátil em disco, com

gigabytes (ou terabytes), velocidade e custo baixos.

Page 3: GERENCIA DE MEMORIA.ppt
Page 4: GERENCIA DE MEMORIA.ppt

• Historicamente, a memória principal sempre foi vista como um recurso escasso e caro.

• Desenvolver SO´s que não ocupam muito espaço na memória e, ao mesmo tempo, otimizem a utilização dos recursos computacionais.

• Sistemas Monoprogramáveis • Gerência de memória não é muito complexa. • Sistemas Multiprogramáveis • Gerência de memória é 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.

Page 5: GERENCIA DE MEMORIA.ppt

• Em geral, programas são armazenados em memórias secundárias.

• Processador somente executa instruções localizadas na memória principal,por isso o SO deve sempre transferir programas da memória secundária para a memória principal antes de serem executados.

Page 6: GERENCIA DE MEMORIA.ppt

funções básicas do gerenciamento de memória

• 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 mais recursos computacionais.

• Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados (swapping)

Page 7: GERENCIA DE MEMORIA.ppt

• 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• 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.

Page 8: GERENCIA DE MEMORIA.ppt

Gerenciador de memória

• Responsável por alocar e liberar espaços na memória para os processos em execução.

• Responsável por gerenciar o chaveamento entre a memória principal e o disco, e memória principal e memória cache.

Page 9: GERENCIA DE MEMORIA.ppt

Alocação Contígua Simples

• Implementada nos primeiros SO´s. • Ainda está presente em alguns sistemas

monoprogramáveis. • Memória principal é subdividida em duas áreas. 1.Sistema Operacional. 2.Programa do usuário. • Usuário tem controle sobre toda a memória principal,

podendo ter acesso a qualquer região de memória. • Os programas são limitados ao tamanho da área de

memória principal disponível ao usuário.

Page 10: GERENCIA DE MEMORIA.ppt
Page 11: GERENCIA DE MEMORIA.ppt

Técnicas de Over lay• O programa alocado 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.

Page 12: GERENCIA DE MEMORIA.ppt

• 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.

Page 13: GERENCIA DE MEMORIA.ppt

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.

• 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.

Page 14: GERENCIA DE MEMORIA.ppt
Page 15: GERENCIA DE MEMORIA.ppt

Alocação Par ticionada EstáticaAbsoluta

• Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem disponíveis

Page 16: GERENCIA DE MEMORIA.ppt

Alocação Particionada EstáticaRelocável

• No código relocável, todos os programas podem ser executados a partir de qualquer partição.

Page 17: GERENCIA DE MEMORIA.ppt

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.

Page 18: GERENCIA DE MEMORIA.ppt

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.

Page 19: GERENCIA DE MEMORIA.ppt

Fragmentação Interna

• 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

Page 20: GERENCIA DE MEMORIA.ppt
Page 21: GERENCIA DE MEMORIA.ppt

Alocação Particionada Dinâmica

• Na alocação particionada dinâmica, ou variável, cada programa utilizaria o espaço necessário, tornando essa área sua partição.

Page 22: GERENCIA DE MEMORIA.ppt

Fragmentaçã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.

Page 23: GERENCIA DE MEMORIA.ppt

Estratégias de Alocação dePartiçã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.

Page 24: GERENCIA DE MEMORIA.ppt

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.

Page 25: GERENCIA DE MEMORIA.ppt
Page 26: GERENCIA DE MEMORIA.ppt

Worst - fit

• A pior partição é escolhida, ou seja, aquela em que o programa deixa o maior espaço sem utilização.

Page 27: GERENCIA DE MEMORIA.ppt

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.

Page 28: GERENCIA DE MEMORIA.ppt
Page 29: GERENCIA DE MEMORIA.ppt

Swapping

• 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.

• 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

Page 30: GERENCIA DE MEMORIA.ppt

Exercícios

1- Quais as funções básicas da gerência de memória?2- Qual a diferença entre fragmentação interna e externa

da memória principal?3- Qual a limitação da alocação particionada estática

absoluta em relação à alocação estática relocável?4- 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?

Page 31: GERENCIA DE MEMORIA.ppt

Correção dos exercicios

1- Quais as funções básicas da gerência de memória?R: Maximizar o número de processos na memória,

permitir a execução de programas maiores que a memória física,compartilhamento de dados na memória e proteção da memória utilizada por cada processo e pelo sistema operacional.

Page 32: GERENCIA DE MEMORIA.ppt

• 2- Qual a diferença entre fragmentação interna e externa da memória principal?

• R: Fragmentação interna ocorre em espaços livres e contíguos na memória principal que são pré-alocados por processos,não possibilitando, portanto, o uso por outros processos. Fragmentação externa ocorre em espaços livres e contínuos,porém tão pequenos que não possibilitam a alocação de programas por processos.

Page 33: GERENCIA DE MEMORIA.ppt

• 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óriaprincipal onde programa é carregado. Na alocação absoluta, um programa pode apenas ser carregado a partir de um único endereço, consequentemente em uma única partição. Na alocação relocável, um programa pode ser carregado a partir de qualquer endereço ou partição.

Page 34: GERENCIA DE MEMORIA.ppt

• 4- 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?

• R: Considerando que o sistema operacional e o programa somados ocupam ¾ da memória principal, temos 25% de subutilização da memória. Ou seja: 10Kb.