Gerência de Memória no Linux

6
Gerência de Memória no Linux Tamanho da página Linux no Alpha AXP: 8Kb Linux no Intel x86: 4Kb Algumas características do sistema de memória no Linux Swapping Algoritmo de swap: LRU com aging Modo de endereçamento físico e virtual Já 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

description

Gerência de Memória no Linux. Algumas características do sistema de memória no Linux. Tamanho da página Linux no Alpha AXP: 8Kb Linux no Intel x86: 4Kb. Swapping Algoritmo de swap: LRU com aging. Modo de endereçamento físico e virtual Já imaginou o SO rodando em endereçamento virtual? - PowerPoint PPT Presentation

Transcript of Gerência de Memória no Linux

Page 1: 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

Page 2: Gerência de Memória no Linux

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

Page 3: Gerência de Memória no Linux

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.

Page 4: Gerência de Memória no Linux

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.

Page 5: Gerência de Memória no Linux

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.

Page 6: Gerência de Memória no Linux

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