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/