Debian
Gerência de Memória
Utilização de memória e Swapping
• O kernel Linux sempre utiliza a maior quantidade
de memória RAM possível;
• Dados não são apagados imediatamente após o
encerramento da execução;
• Agilidade na execução;
• Quando não há mais espaço suficiente:
Swapping;
• Envelhecimento e rejuvenescimento de
informações;
Proteção
• O kernel Linux divide e separa os processos
carregados na memória RAM como processos
do kernel e processos do usuário.
Mapeamento de memória
• Processos em execução divididos em páginas,
nem todas estão realmente na memória física;
• Endereços virtuais agilizam o acesso à memória;
• Mapeamento: utilização de endereços virtuais
com endereços reais(físicos);
• mm_struct – estrutura de dados com
informações sobre o que está sendo executado e
apontamentos para vm_area_structure;
• vm_area_structure – contém a localização exata
das informações na memória (Page Frame
Numbers).
Controle de Alocação
• Algoritmo Companheiro
–
–
–
–
Mantém lista de blocos;
Cada bloco tem tamanho igual a uma potência de 2;
No início, um único bloco contém toda a memória;
Para alocar:
• Enquanto o tamanho do processo for menor do que a metade do
menor bloco divida o bloco em 2 partes
– Para alocar:
• Se o vizinho estiver livre, recombine em um único bloco.
Algoritmo Companheiro
Algoritmo Companheiro
 Vantagens:
◦ Facilita a busca de bloco livre, se for implementada com uma
estrutura de árvore;
◦ Blocos sempre começam em endereços determinados.
 Desvantagens:
◦ Aumenta a fragmentação para processos ligeiramente maiores
do que uma potência de 2.
 A fragmentação é resolvida pelo Kernel com um processo
de desfragmentação que junta espaços preenchidos de
memória que são categoricamente semelhantes.
Memória Cache
• Otimizar e agilizar o acesso às informações;
• Buffer Cache: operações de E/S;
• Page Cache: torna mais rápido o acesso a
vários tipos de informação no disco;
• Swap Cache: apenas páginas da memória
modificadas são salvas na memória virtual
física.
Memória Virtual (Swap)
• Consiste em reservar uma parte do HD para
ser uma extensão da memória RAM;
• Memória virtual = RAM + SWAP;
• Quando é necessário esvaziar parte da RAM,
os processos mais envelhecidos (swapping)
são transferidos para o disco (partição swap)
Paginação Sob Demanda
• Traz uma página para a memória somente
quando ela é necessária.
– Necessita de menos E/S
– Ocupa menos memória
– Resposta mais rápida
– Permite mais usuários
Paginação Sob Demanda
• Similar ao swapping, mas o sistema não traz
todo o processo para a memória, apenas as
paginas requeridas.
• Pode aumentar o numero de acessos a disco.
Um processo pode precisar de várias páginas
durante sua execução.
• Quando uma página não é encontrada na
memória principal, uma exceção chamada de
falta de página é capturada.
Paginação Sob Demanda
• O tratador de falta de página, no kernel realiza
as seguintes tarefas:
– Localizar a página no disco;
– Escolher o frame para armazenar a memória
física;
– Atualiza a tabela de páginas;
– Reinicia a execução do programa.
Paginação Sob Demanda
Um processo é dividido
em uma série de páginas.
Isto informa onde estão
as páginas do processo.
O bit de válido/inválido
indica se a página já
está presente na
memória ou se ainda
está no disco
Referências bibliográficas
• http://www.dbit.com.br/blog/2008/09/24/aestrutura-basica-do-kernel-linux/
• http://www2.prudente.unesp.br/posti/downl
oad/solinux2.pdf
• http://www.vivaolinux.com.br/artigo/Estudosobre-os-tipos-de-gerenciamento-do-SOLinux?pagina=2
• http://www.inf.ufsc.br/~fernando/ine5412/
Download

Debian - Gerência de Memória