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

Upload: roanna-barrett

Post on 31-Dec-2015

21 views

Category:

Documents


0 download

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

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