Gerência de Memória no Linux
-
Upload
roanna-barrett -
Category
Documents
-
view
20 -
download
0
description
Transcript of Gerência de Memória no Linux
Gerência de Memória no Linux
Tamanho da páginaLinux no Alpha AXP: 8KbLinux no Intel x86: 4Kb
Algumas características do sistema de memória no Linux
SwappingAlgoritmo de swap: LRU com aging
Modo de endereçamento físico e virtualJá imaginou o SO rodando em endereçamento virtual?
Ele teria que ter uma tabela de páginas para si mesmo!
Layout de Memória para um programa
Controle de AcessoAbaixo, a Page Table Entry (PTE) ou Entrada da tabela de página
Gerência de Memória no Linux
Legenda (algumas flags):V – Valid: se a entrada é validaFOR – Fault on read: falta de página na leituraFOW – o mesmo acima, mas para escritaFOE – o mesmo acima, mas para execuçãoKRE – código executando em modo kernel pode ler esta páginaPFN – page frame number: se V estiver setado, PFN terá o endereço físico da entrada
Gerência de Memória no Linux
CacheBuffer CachePage CacheSwap CacheHardware Caches
Tabela de Página do Linux
O modelo ao lado étão bem sucedido queele é usado tanto parao processador Alphaque tem os três níveisquanto para o x86que só tem dois níveis.
Gerência de Memória no Linux
Alocação e Desalocação de páginas
Alocação: Algoritmo Buddy-heap Desalocação: combinar os adjacentes se estiverem livres para formar blocos grandes.
Gerência de Memória no Linux
Memória alta, baixa e zonas de memória
Limitação do KernelQtd endereçavel: qtd. memória no seu espaço (menos) espaço dedicado ao codigo do kernel = 1Gb
Região Alta: memória que o kernel não endereçaRegião Baixa: memória endereçavel pelo kernel (1Gb)
Contorno da limitação:zone_dma: regiões que podem ser usadas para DMA. (molduras abaixo de 16 MB)
zone_normal: regiões endereçadas normalmente. (molduras entre 16MB e 896 MB)
zone_highmem: regiões mapeadas dinamicamente. (molduras acima de 896 MB)
Importante: 128Mb restantes de 1Gb é um espaço onde são mapeadas as molduras de zone_highmem. Isto é, as molduras acima de 896Mb dispõem de 128Mb de espaço para serem mapeadas na zone_normal.
Gerência de Memória no Linux
ReferênciasRusling, David A. (1999) “The Linux Kernel”, http://tldp.org/LDP/tlk/mm/memory.html
Gonçalves, A. R.; Luvizotto, D. C. R.; Nascimento, H. A. A.; dos Santos L. G. A.; Martins, L. G. C. (2007) “Sistemas Linux: gerência de memória, sistema de arquivos, entrada e saída e estrutura de redes”, http://www.dca.fee.unicamp.br/~andreric/arquivos/sistemas_linux.pdf
Francisco, D. R.; Póvoa, M. G.; Matsumoto, M. K.; Feniman, P. (2010) “Sistemas Operacionais: Teoria e Prática Estudo de Caso: Gerenciamento de Memória no Linux”, http://www.lsd.ic.unicamp.br/mc514/?q=node/94