Gerenciamento de memória
Transcript of Gerenciamento de memória
GERENCIAMENTO DE MEMÓRIA
Cap 03. Gleiser Rodrigues de Melo
2
Introdução
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 !!!!
3
Sem abstração de memória
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.
4
Sem abstração de memória
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
5
Sem abstração de memória
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.
6
Abstração de memória: Espaço de endereçamento
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.
7
Registradores-base e registradores-limite
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.”
8
Troca de memória
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.
9
Troca de memória
Se os processos tiverem que crescer durante a execução (Área de dados). Aloca-se um espaço adjacente extra pra tal
crescimento. Se o espaço adjacente estiver outro
processo. O 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.
“Se os processos puderemTer 2 áreas de expansão:• Area de dados: para variáveisAlocadas e liberadas.•Área de pilha: para variáveis locaise para endereços de retorno.Então a solução: (b)”
10
Gerenciamento de memória livre 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.
11
Gerenciamento de memória livre
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.