You are on page 1of 5

Gerência de Memória

Sistemas Operacionais – Ciência da Computação


• Todo programador deseja uma memória
Gerência de Memória infinitamente grande, rápida e não volátil;
Introdução
• Infelizmente a tecnologia atual não oferece
Prof. Humberto Brandão diretamente tais exigências;
humberto@dcc.ufmg.br

aula disponível no site: • Atualmente a maioria dos computadores possui


http://www.dcc.ufmg.br/~humberto/unifal/
uma hierarquia de memória para isso.
Universidade Federal de Alfenas
Departamento de Ciências Exatas
versão da aula: 0.1

Gerência de Memória Gerência de Memória

• Hierarquia de memória: • É função do Gerenciador de Memória controlar


quais partes estão em uso, e quais não estão;
– Uma pequena memória cache, muito rápida e de alto
custo; – Alocar memória para novos processos;

– Uma grande memória principal (RAM), atualmente – Liberar memória dos processos que terminam;
com alguns gigabytes. Velocidade média e médio
custo;
– Alocar mais memória para processos que demandam;

– E uma grande memória secundária (disco),


– Efetuar a troca de processos (swapping) , quando a
atualmente com centenas de gigabytes. Baixa
RAM não suporta todos os processos ao mesmo
velocidade e baixo custo;
tempo;

Gerência Básico de Memória

• Existem duas classes para o gerenciamento de


memória:
Gerência Básico de Memória
– Sistemas q
que efetuam o swapping;
pp g
Monoprogramação
M ã sem troca de
d
– Sistemas que não efetuam o swapping;
processos

• Se um dia existir tecnologia que disponibiliza


mais memória que os programas podem ocupar,
poderemos seguir para os algoritmos mais
simples;

1
Monoprogramação sem troca de Monoprogramação sem troca de
processos ou paginação processos ou paginação
• No máximo um processo reside na memória em • No máximo um processo reside na memória em
um mesmo instante de tempo... um instante de tempo...

O primeiro modelo foi utilizado


em computadores de grande
porte;

Atualmente não é utilizado

Monoprogramação sem troca de Monoprogramação sem troca de


processos ou paginação processos ou paginação
• No máximo um processo reside na memória em • No máximo um processo reside na memória em
um instante de tempo... um instante de tempo...

Atualmente utilizado em
sistemas embarcados e
palmtops.

Utilizado pelo MS-DOS.

A BIOS ocupa a memória ROM.

Monoprogramação sem troca de


processos ou paginação

• Quando o programa finaliza, o Gerência Básica de Memória


espaço reservado para o programa
de usuário é liberado e o sistema
operacional indica no prompt o M li
Multiprogramação
ã com partições
i õ fixas
fi
termino do processo.

• Neste instante ele aguarda uma


nova entrada no terminal para
carregar um novo processo na
memória;

2
Multiprogramação com partições fixas Multiprogramação com partições fixas

• Sempre que um novo processo é carregado, ele é


inserido em uma lista de processos que
• Neste modelo vários processos
aguardam um espaço na memória para serem
são aceitos na memória ao
executados;
mesmo tempo;

• Basicamente, dois modelos podem ser


• A maneira mais simples de
implementados:
suportar a multiprogramação
em memória é dividindo a
memória principal em partições – Utilizar uma lista para cada partição de memória;
fixas; – Utilizar uma lista geral, para todas as partições;

Multiprogramação com partições fixas

Troca de Processos

Troca de Processos Troca de Processos


• Exemplo de alocação dinâmica de processos em
• Existem duas formas de gerenciar processos em partições de tamanhos variáveis:
memória: – Espaços sombreados são espaços livres na memória.

– Troca de processos (swapping). Todo o processo


precisa estar na memória principal para ser
executado;

– Memória virtual. Permite que programas possam ser


executados mesmo que estejam parcialmente na
memória principal (será detalhado nas próximas
aulas);

3
Troca de Processos Troca de Processos

• Um ponto importante é a quantidade de


memória que deve ser alocada para cada
processo;
processo

• A troca de processos pode deixar muitos espaços • Se o tamanho é fixo, a implementação é simples;
vazios na memória;
• Contudo, se a área de dados do processo puder
• A solução é efetuar a compactação de memória;
memória crescer, problemas poderão ocorrer;
Geralmente não é suportada pelos S.O.s por
gastar muito tempo para realocar todos os
processos;

Troca de Processos Troca de Processos

• Se houver espaço disponível adjacente ao processo, o • Os S.O.s modernos alocam uma memória extra
algoritmo é simples. para os processos, devido:
– Pode-se simplesmente alocar o espaço disponível ao processo
em crescimento; – a alocação dinâmica de variáveis;
– ao o crescimento da pilha de execução;
• S
Se não
ã houver
h espaço livre
li adjacente,
dj o processo deve
d
ser realocado na memória, para uma região mais • Observação:
promissora;
– Quando o processo for transferido para o disco,
somente a memória em uso deve ser transportada,
• Se não existir uma partição onde o processo em economizando na quantidade de operações
crescimento caiba, o mesmo deve aguardar em disco, ou necessárias;
o S.O. deve descartá-lo (kill idProcess);

Troca de Processos
(a) Crescimento apenas da heap;
(b) Crescimento da heap e da pilha de execução.

Gerenciamento de Memória

Representação e Algoritmos

4
Gerenciamento de Memória Gerenciamento de Memória
Representação Processos terminando sua execução...
• Suponha a memória abaixo, suportando os processo A,
B, C, D, e E:

• Existem q
quatro p
possibilidades q
quando um p
processo
•U
Uma possível
í l implementação
i l ã é por uma lista
li termina sua execução...
encadeada:
encadeada

Gerenciamento de Memória Trabalho prático 3


Algoritmos para Gerência de Memória
• Implementação dos algoritmos:
• First-fit; – First-fit;
– Next-fit;
• Next-fit; – Best-fit;
– Worst fit;
Worst-fit;

• Best-fit;
• Em tempo real... On-line... Meu sistema gera os
• Worst-fit; processos, e o seu sistema gerencia a memória,
indicando todo o tempo o estado da memória
primária...

Trabalho prático 3 Referencia

• Não haverá TP4; • Sistemas Operacionais Modernos. Tanenbaum,


A. S. 2ª edição. 2003
• O TP3 terá o dobro de pontos;