160 likes | 298 Views
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;
E N D
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 • 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 O bit de válido/inválido indica se a página já está presente na memória ou se ainda está no disco Um processo é dividido em uma série de páginas. Isto informa onde estão as páginas do processo.
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/