Post on 21-Oct-2015
+Gerencia de Memória Prof.ª Líliam Barroso Leal
+Gerenciamento de Memória
n Cabe ao sistema operacional coordenar a utilização das diversas memórias disponíveis no computador.
n O gerenciamento de memórias consiste em algumas tarefas como:
n Manter o controle de quais partes da memória estão em uso e quais não estão.
n Alocar e liberar memória para processos.
n Gerenciar a troca de processos entre a memória principal e o disco rígido quando necessário (swapping).
+Motivação
n Idealmente, o que todo programador deseja é: n Grande quantidade de memória
n Rapidez
n Não Volátil
n Hierarquia das memórias n Pequena quantidade de memória rápida, de alto custo – cache
n Quantidade considerável de memória principal de velocidade média, custo médio.
n Gigabytes de armazenamento em disco de velocidade e custos baixos.
+Gerenciamento Básico de Memória
n O gerenciamento de memória podem ser divididos em duas classes:
n Sistemas que, durante a execução levam e trazem processos entre a memória principal e o disco
n E sistemas mais simples que não fazem gerenciamento de troca.
+Monoprogramação Sem Troca de Processos ou Paginação
n A memória é compartilhada entre o programa e o sistema operacional e somente um programa é executado por vez.
n Existem três variação desse esquema:
+Multiprogramação com partições Fixas
n Consiste em dividir a memória em n partições (provavelmente de tamanhos diferentes) n Problema: fragmentação interna.
+Troca de Processo
n Dois métodos gerais para o gerenciamento de memória podem ser usados dependendo dos recursos de hardware disponíveis.
n Troca de processos (swapping): consiste em trazer totalmente cada processo para a memória, executá-lo durante um certo tempo e depois devolve-lo ao disco.
n Memória Virtual: permite que programas possam ser executados mesmo que estejam apenas parcialmente carregados na MP.
+Particionamento Variável
n A flexibilidade de não esta amarrado a um número fixo de partições melhora a utilização da memória, mas complica a alocação e a liberação de memória e o gerenciamento dessas trocas. n Uma possível solução, seria uso da técnica de compactação de
memória. Mas devido ao tempo de processamento necessário, essa técnica geralmente não é usada.
+Particionamento Variável
+Gerencia de Memória com Mapa de Bits
n Quando a memória é alocada dinamicamente, o sistema operacional deve gerenciá-la. Existem duas maneiras de fazer isso: n Mapa de bits
n Lista de disponíveis
+Mapa de Bits
n Associa a cada unidade de alocação de memória um bit no mapa de bits. n Bit 0: Unidade de alocação disponível;
n Bit 1: Unidade de alocação ocupada.
+Mapa de Bits
n Problemas: Quando é necessário carregar na memória um processo de tamanho k unidades, é preciso localizar espaço disponível na memória com tamanho correspondente a K bits 0 consecutivos.
+Gerenciamento de Memória Com Lista Encadeada
n Mantem uma lista encadeada de segmentos de memória alocados e de segmentos de memória disponíveis. n Pode ser utilizado com diversos algoritmos para alocar memória
a um processo.
n First Fit
n Next Fit
n Best Fit
n Worst Fit
n Todos esses algoritmos podem se tornar mais rápidos se segmentos de memória alocados a processos e segmentos de memória disponíveis fossem mantidos em listas separadas