debian gerência de memória. utilização de memória e swapping o kernel linux sempre utiliza a...
TRANSCRIPT
DebianGerê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 CompanheiroVantagens:◦ 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/a-estrutura-basica-do-kernel-linux/
• http://www2.prudente.unesp.br/posti/download/solinux2.pdf
• http://www.vivaolinux.com.br/artigo/Estudo-sobre-os-tipos-de-gerenciamento-do-SO-Linux?pagina=2
• http://www.inf.ufsc.br/~fernando/ine5412/