Sie sind auf Seite 1von 34

GERENCIA DE MEMORIA

Introduo e funes bsicas


Idealmente os programadores querem uma memria que
seja
Grande.
Rpida.
No Voltil.
Baixo custo.
Infelizmente a tecnologia atual no comporta tais
memrias.
A maioria dos computadores utiliza Hierarquia de
Memrias que combina:
Uma pequena quantidade de memria cache, voltil,
muito rpida e de alto custo.
Uma grande memria principal (RAM), voltil, com
centenas de MB ou poucos GB, de velocidade e custo
mdios.
Uma memria secundria, no voltil em disco, com
gigabytes (ou terabytes), velocidade e custo baixos.

Historicamente, a memria principal sempre


foi vista como um recurso escasso e caro.
Desenvolver SOs que no ocupam muito
espao na memria e, ao mesmo tempo,
otimizem a utilizao dos recursos
computacionais.
Sistemas Monoprogramveis
Gerncia de memria no muito complexa.
Sistemas Multiprogramveis
Gerncia de memria crtica devido
necessidade de se maximizar o nmero de
usurios e aplicaes utilizando eficientemente
o espao da memria principal.

Em geral, programas so armazenados


em memrias secundrias.
Processador somente executa instrues
localizadas na memria principal,por
isso o SO deve sempre transferir
programas da memria secundria
para a memria principal antes de
serem executados.

funes bsicas do
gerenciamento de memria
A gerncia de memria deve tentar manter
na memria principal o maior nmero de
processos residentes, permitindo maximizar
o compartilhamento do processador e mais
recursos computacionais.
Mesmo na ausncia de espao livre, o
sistema deve permitir que novos processos
sejam aceitos e executados (swapping)

A gerncia de memria deve permitir a


execuo de programas que sejam
maiores que a memria fsica disponvel
Implementada atravs de tcnicas
como:
Overlay
Memria virtual
Em um ambiente de multiprogramao,
o sistema operacional deve proteger as
reas de memria ocupadas por cada
processo, alm da rea onde reside o
prprio sistema.

Gerenciador de memria
Responsvel por alocar e liberar
espaos na memria para os
processos em execuo.
Responsvel por gerenciar o
chaveamento entre a memria
principal e o disco, e memria
principal e memria cache.

Alocao Contgua
Simples
Implementada nos primeiros SOs.
Ainda est presente em alguns sistemas
monoprogramveis.
Memria principal subdividida em duas reas.
1.Sistema Operacional.
2.Programa do usurio.
Usurio tem controle sobre toda a memria
principal, podendo ter acesso a qualquer regio
de memria.
Os programas so limitados ao tamanho da rea
de memria principal disponvel ao usurio.

Tcnicas de Over lay


O programa alocado na memria
dividido em mdulos, de forma que
seja possvel a execuo
independente de cada mdulo,
utilizando uma mesma rea de
memria.

Pode trazer implicaes no


desempenho das aplicaes, devido
possibilidade de transferncia
excessiva dos mdulos entre a
memria principal e secundria.

Alocao Particionada
Esttica

Nos primeiros sistemas multiprogramveis, a


memria era dividida em pedaos de tamanho
fixo, chamados parties.
O tamanho das parties, estabelecido na fase
de inicializao do sistema, era definido em
funo do tamanho dos programas que
executariam no ambiente.
Sempre que fosse necessria a alterao do
tamanho de uma partio, o sistema deveria ser
desativado e reinicializado com uma nova
configurao.
Esse tipo de gerncia de memria conhecido
como alocao particionada esttica ou fixa.

Alocao Par ticionada


Esttica
Absoluta

Inicialmente, os programas s podiam


ser carregados e executados em apenas
uma partio especfica, mesmo se
outras estivessem disponveis

Alocao Particionada
Esttica
Relocvel
No cdigo relocvel, todos os
programas podem ser executados a
partir de qualquer partio.

Tabela de Alocao de
Parties
Para manter o controle sobre quais
parties esto alocadas, a gerncia
de memria mantm uma tabela
com o endereo inicial de cada
partio, seu tamanho e se est em
uso.

Proteo na Alocao
Particionada
Neste esquema de alocao de memria
a proteo baseia-se em dois
registradores, que indicam os limites
inferior e superior da partio onde o
programa est sendo executado.

Fragmentao Interna
Tanto nos sistemas de alocao absoluta
quanto nos de alocao relocvel os
programas, normalmente, no preenchem
totalmente as parties onde so
carregados.
Este tipo de problema, decorrente da
alocao fixa das parties, conhecido
como fragmentao interna.
Exemplo de sistema operacional que
implementou esse tipo de gerncia de
memria o OS/MFT da IBM

Alocao Particionada
Dinmica
Na alocao particionada dinmica,
ou varivel, cada programa utilizaria
o espao necessrio, tornando essa
rea sua partio.

Fragmentao Externa
Um diferente tipo de fragmentao
comear a ocorrer, quando os
programas forem terminando e
deixando espaos cada vez menores
na memria, no permitindo o
ingresso de novos programas.

Estratgias de Alocao de
Partio
Os sistema operacionais
implementam, basicamente, trs
estratgias para determinar em qual
rea livre um programa ser
carregado para execuo.
A melhor estratgia depende de uma
srie de fatores, sendo o mais
importante o tamanho dos programas
processados no ambiente.

Best - fit
A melhor partio escolhida, ou
seja, aquela em que o programa
deixa o menor espao sem utilizao.
Neste algoritmo, a lista de reas
livres est ordenada por tamanho,
diminuindo o tempo de busca por
uma rea desocupada.

Worst - fit
A pior partio escolhida, ou seja,
aquela em que o programa deixa o
maior espao sem utilizao.

First - fit
A primeira partio livre de tamanho
suficiente para carregar o programa
escolhida.
Nesse algoritmo, a lista de reas
livres est ordenada por endereos
crescentemente
Das trs estratgias apresentadas, a
first-fit a mais rpida, consumindo
menos recursos do sistema.

Swapping
A tcnica de swapping foi introduzida para
contornar o problema da insuficincia de
memria principal.
O algoritmo de escolha do processo a ser
retirado da memria principal deve priorizar
aquele com menores chances de ser
escalonado.
Os primeiros sistemas operacionais que
implementaram esta tcnica surgiram na
dcada de 1960, como o CTSS do MIT e OS/360
da IBM

Exerccios
1- Quais as funes bsicas da gerncia de memria?
2- Qual a diferena entre fragmentao interna e
externa da memria principal?
3- Qual a limitao da alocao particionada esttica
absoluta em relao alocao esttica relocvel?
4- Considere um sistema computacional com 40 Kb
de memria principal e que utilize um sistema
operacional de 10 kb que implemente alocao
contgua de memria. Qual a taxa de subutilizao
da memria principal para um programa que ocupe
20 Kb de memria?

Correo dos exercicios


1- Quais as funes bsicas da gerncia de
memria?
R: Maximizar o nmero de processos na
memria, permitir a execuo de programas
maiores que a memria fsica,
compartilhamento de dados na memria e
proteo da memria utilizada por cada
processo e pelo sistema operacional.

2- Qual a diferena entre fragmentao


interna e externa da memria principal?
R: Fragmentao interna ocorre em espaos
livres e contguos na memria principal que
so pr-alocados por processos,
no possibilitando, portanto, o uso por
outros processos. Fragmentao externa
ocorre em espaos livres e contnuos,
porm to pequenos que no possibilitam a
alocao de programas por processos.

3- Qual a limitao da alocao particionada


esttica absoluta em relao alocao esttica
relocvel?
R: A grande diferena entre a alocao
particionada esttica absoluta e a alocao
esttica relocvel o local na memria
principal onde programa carregado. Na alocao
absoluta, um programa pode apenas ser carregado
a partir de um nico endereo, consequentemente
em uma nica partio. Na alocao relocvel, um
programa pode ser carregado a partir de qualquer
endereo ou partio.

4- Considere um sistema computacional


com 40 Kb de memria principal e que
utilize um sistema operacional de 10 kb
que implemente alocao contgua de
memria. Qual a taxa de subutilizao da
memria principal para um programa que
ocupe 20 Kb de memria?
R: Considerando que o sistema operacional
e o programa somados ocupam da
memria principal, temos 25% de
subutilizao da memria. Ou seja: 10Kb.

Das könnte Ihnen auch gefallen