Você está na página 1de 12

GERENCIAMENTO DE

MEMÓRIA
Cap 03. Gleiser Rodrigues de Melo
Introdução
2

 Uso da memória (idealmente)


 Quantidade infinita de memória
 Infinitamente rápida, não volátil e barata.
 Na realidade (hierarquia de memória)
 Quantidade finita de memória
 Pequena quantidade muito rápida – muito cara e volátil.
 Média quantidade rápida – custo razoavel e volátil
 Grande quantidade “lenta” – custo baixo e não volátil
 Parte do S.O. que gerencia (parcialmente) a memória.
 GERENCIADOR DE MEMÓRIA !!!!
Sem abstração de memória
3

 Primeiros computadores não possuíam abstração da


memória.
 Só era considerado a memória principal
 Conjunto de endereços de 0 a algum máximo
 Nessas condições não era possível executar 2
programas na memória simultaneamente.
 Um programa poderia sobrescrever o outro
programa que estivesse armazenado no mesmo
endereço de memória.
Sem abstração de memória
4

 Ainda que o modelo de memória fosse apenas a


memória:

 (a) e (c) Possibilidade de erro de programa do


usuário apague o sistema operacional
Sem abstração de memória
5

 Quando o sistema é organizado dessa forma apenas


um processo pode ser executado por vez.
 Sistema copia o programa solicitado do disco para
a memória e executa-o.
Abstração de memória: Espaço de endereçamento
6

 Espaço de endereçamento: é um conjunto de


endereços que um processo pode usar para
endereçar a memória.
 Cada processo tem seu espaço de endereçamento
 Exceto quando dois ou mais processos desejam
compartilhar.
Registradores-base e registradores-limite
7

 CPU equipada com registradores.


 Quando um processo é executado:
 RB é carregado com o endereço físico onde seu
programa começa,
 E o RL é carregado com o comprimento do programa.
 “os valores usados quando o 2º
Programa é executado são 16.384 e
32.768.”
Troca de memória
8

 Dois métodos gerais para lidar com a sobrecarga de


memória.
 Swapping.
 Memória Virtual.
 SWAPPING: Traz em sua totalidade o processo
para a memória, executa-o durante um tempo e
então devolve ao disco.
Troca de memória
9

Se os processos tiverem que crescer durante a


 processos puderem
“Se os
Ter 2 áreas de expansão:
execução (Área de dados).
• Area de dados: para variáveis
Aloca-se um
Alocadas e liberadas. espaço adjacente extra pra tal
•Área de pilha: para variáveis
locais crescimento.
e para endereços
 Se de o retorno.
espaço
adjacente estiver outro processo. O
Então a solução: (b)”
processo que necessita crescer poderá ser movido para
uma área grande o suficiente.
 Se a opção anterior não puder ser executada, o
processo deverá ser suspenso.
Gerenciamento de memória livre
10

 Mapa de bits:
 A cada unidade de alocação corresponde um bit no
mapa de bits, o qual é 0 se a unidades estiver livre, e 1
se estiver ocupada (ou vice-versa).
 Lista encadeada:
 Segmento: é tanto a área da memória alocada a um
processo como a área livre situada entre dois
processos.
Gerenciamento de memória livre
11
12

 Mapeamento da Memória com listas ligadas:


 Best-Fit (melhor alocação):
 Espaço mais próximo do tamanho do processo;
 Tempo de busca grande;
 Provoca fragmentação.
 Worst-Fit (pior alocação):
 Cria o maior espaço possível;
 Tempo de busca grande;
 Não apresenta bons resultados.
 First-Fit (primeira alocação):
 Melhor performance.
 Next-Fit (próxima alocação):
 Performance inferior ao First-Fit.

Você também pode gostar