Gerenciamento de memória

12
GERENCIAMENTO DE MEMÓRIA Cap 03. Gleiser Rodrigues de Melo

Transcript of Gerenciamento de memória

Page 1: Gerenciamento de memória

GERENCIAMENTO DE MEMÓRIA

Cap 03. Gleiser Rodrigues de Melo

Page 2: Gerenciamento de memória

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 !!!!

Page 3: Gerenciamento 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.

Page 4: Gerenciamento 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

Page 5: Gerenciamento de memória

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.

Page 6: Gerenciamento de memória

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.

Page 7: Gerenciamento de memória

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

Page 8: Gerenciamento de memória

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.

Page 9: Gerenciamento de memória

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)”

Page 10: Gerenciamento de memória

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.

Page 11: Gerenciamento de memória

11

Gerenciamento de memória livre

Page 12: Gerenciamento de memória

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.