O Linux usa um sistema de memória virtual em que todos os endereços são endereços virtuais e não físicos. Esses endereços virtuais são convertidos em endereços físicos pelo processador.
Para facilitar essa tradução, a memória virtual e física é dividida em páginas. Cada uma dessas páginas recebe um número único; o número do quadro da página.
Alguns tamanhos de página podem ter 2 KB, 4 KB, etc. Mas como é determinado o número do tamanho da página? É influenciado pelo tamanho da arquitetura? Por exemplo, um barramento de 32 bits terá 4 GB de espaço de endereço.
O hardware (especificamente, o MMU , que faz parte da CPU) determina quais tamanhos de página são possíveis. Não há relação com o tamanho do registro do processador e apenas uma relação indireta com o tamanho do espaço de endereço (na medida em que a MMU determina ambos).
Quase todas as arquiteturas suportam um tamanho de página de 4kB. Algumas arquiteturas suportam páginas maiores (e algumas também suportam páginas menores), mas 4kB é um padrão muito difundido.
O Linux suporta dois tamanhos de página:
CONFIG_HUGETLB_PAGE
é necessário eCONFIG_HUGETLBFS
também para a maioria dos usos). Isso corresponde ao segundo nível mais profundo dos descritores da MMU (o que o Linux chama de PMD) (ou pelo menos costuma fazer, não sei se isso vale para todas as arquiteturas).O tamanho da página é um compromisso entre o uso da memória, o uso da memória e a velocidade.
Os ganhos de tamanhos maiores de página são pequenos para a maioria dos aplicativos, enquanto o custo é substancial. É por isso que a maioria dos sistemas usa apenas páginas de tamanho normal.
Você pode consultar o tamanho da página (normal) no seu sistema com a
getconf
utilidade ou a função Csysconf
.Usar páginas enormes exige a montagem do
hugetlbfs
sistema de arquivos e os arquivosmmap
ping lá.fonte
O tamanho da página depende principalmente da arquitetura do processador. No x86, desde os tempos do processador 386 que introduziu o modo protegido, o tamanho da página foi de 4 kB.
No modo x64, também pode haver páginas enormes, com tamanho de 2 MB. No entanto, usá-los é um pouco complicado.
Você pode encontrar mais informações sobre o tamanho da página no artigo da Wikipedia
fonte
O processador determina os tamanhos de página disponíveis. Para a maioria das finalidades, o tamanho da página implementada por hardware nos processadores x86 e x86_64 é de 4kb. No entanto, o sistema operacional pode alocar mais de uma página por vez, se desejar, e assim implementar efetivamente páginas de 8kb, 16kb ou 32kb no software.
Os processadores x86 e x86_64 podem, respectivamente, também misturar páginas de 4mb e 2mb com as páginas padrão de 4kb. Se esse recurso for usado, seria usado principalmente para alocar espaço no kernel.
fonte