Você está na página 1de 12

Sistemas Operacionais

Gerenciamento de Memória - 2

Prof. Humberto Caetano Humberto.ccs@gmail.com

Abstração de memória

Gerenciando a memória livre

Listas encadeadas

Outra maneira de gerenciar o uso de memória é manter uma lista encadeada de segmentos. Esses segmentos podem ser tanto processos quanto áreas livres.

Abstração de memória

Gerenciando a memória livre

Mapa de bits x Listas encadeadas

Abstração de memória ● Gerenciando a memória livre – Mapa de bits x Listas encadeadas 3

Abstração de memória

Gerenciando a memória livre

Listas encadeadas → Ordenadas por endereço

Este modelo permite uma atualização rápida e simples da lista sempre que um processo for encerrado ou removido da memória.

Um processo tem dois vizinhos, um vizinho e o início da lista ou um vizinho e o fim da lista.

Abstração de memória

Gerenciando a memória livre

Listas encadeadas → Ordenadas por endereço

Abstração de memória ● Gerenciando a memória livre – Listas encadeadas → Ordenadas por endereço 5

Abstração de memória

Gerenciando a memória livre

Listas encadeadas → Ordenadas por endereço

Algoritmos:

First fit → Simplesmente localiza a próxima posição na lista que cabe o novo processo

Next fit → Semelhante ao First fit, mas este algoritmo guarda a informação em relação a última busca e faz a procura por um espaço na lista restante

Best fit → Escolhe o melhor espaço para que não haja área de memória sem utilização

Worst fit → Encaixa o processo na área livre que teria o pior encaixe de todos. Assim o restante do espaço pode ser utilizado por outro processo.

Abstração de memória

Memória Virtual

Quando temos sistemas que o somatório dos espaços de memória de todos os processos é bem maior que a memória, utilizarmos o conceito de memória virtual pode ser uma boa alternativa.

Estes processos, que tinham um tamanho ótimo ou ideal no momento da sua criação, cresceram muito e estão muito mais exigentes em relação a memória. Chamamos isso de bloatware.

Abstração de memória

Memória Virtual

A ideia básica é que cada programa tem seu espaço de endereçamento, dividido em blocos chamados páginas. Cada página é uma série contínua de endereços, todos mapeados na memória, mas nem todos na memória física.

Se um programa procurar uma parte que está na memória física o sistema executa esta porção, caso não o sistema carrega a parte que falta.

Abstração de memória

Memória Virtual

Paginação

A paginação é a divisão da memória física em pequenas

porções chamadas de frames, ou molduras de páginas,

e a criação de unidades chamadas de pages, ou

páginas, na memória virtual.

Um frame corresponde a uma page, mas as pages, que fazem parte da memória virtual, podem não ter seu correspondente na memória real, ou frame.

Abstração de memória

Memória Virtual

MMU (Memory Management Unit)

Abstração de memória ● Memória Virtual – MMU (Memory Management Unit) 10 / 12

Abstração de memória

Memória Virtual

Abstração de memória ● Memória Virtual 11/ 12

Abstração de memória

Memória Virtual

Abstração de memória ● Memória Virtual 12 / 12