Linux usa un sistema de memoria virtual donde todas las direcciones son direcciones virtuales y no direcciones físicas. El procesador convierte estas direcciones virtuales en direcciones físicas.
Para facilitar esta traducción, la memoria virtual y física se dividen en páginas. Cada una de estas páginas recibe un número único; El número de marco de página.
Algunos tamaños de página pueden ser de 2 KB, 4 KB, etc. Pero, ¿cómo se determina este número de tamaño de página? ¿Está influenciado por el tamaño de la arquitectura? Por ejemplo, un bus de 32 bits tendrá 4 GB de espacio de direcciones.
El hardware (específicamente, la MMU , que es parte de la CPU) determina qué tamaños de página son posibles. No hay relación con el tamaño del registro del procesador y solo una relación indirecta con el tamaño del espacio de direcciones (en que la MMU determina ambos).
Casi todas las arquitecturas admiten un tamaño de página de 4 KB. Algunas arquitecturas admiten páginas más grandes (y algunas también admiten páginas más pequeñas), pero 4kB es un valor predeterminado muy generalizado.
Linux admite dos tamaños de página:
CONFIG_HUGETLB_PAGE
es necesario, yCONFIG_HUGETLBFS
también para la mayoría de los usos). Esto corresponde al segundo nivel más profundo de descriptores de MMU (lo que Linux llama PMD) (o al menos generalmente lo hace, no sé si esto se aplica a todas las arquitecturas).El tamaño de la página es un compromiso entre el uso de la memoria, el uso de la memoria y la velocidad.
Las ganancias de los tamaños de página más grandes son pequeñas para la mayoría de las aplicaciones, mientras que el costo es considerable. Es por eso que la mayoría de los sistemas usan solo páginas de tamaño normal.
Puede consultar el tamaño de página (normal) en el sistema con la
getconf
utilidad o de la función Csysconf
.El uso de páginas enormes requiere montar el
hugetlbfs
sistema de archivos y hacermmap
ping a los archivos allí.fuente
El tamaño de la página depende principalmente de la arquitectura del procesador. En x86, desde los tiempos del procesador 386 que introdujo el modo protegido, el tamaño de la página ha sido de 4 kB.
En el modo x64, también puede haber páginas enormes, que tienen un tamaño de 2 MB. Sin embargo, usarlos es un poco complicado.
Puede encontrar más información sobre el tamaño de página en el artículo de Wikipedia
fuente
El procesador determina los tamaños de página disponibles. Para la mayoría de los propósitos, el tamaño de página implementado por hardware en los procesadores x86 y x86_64 es de 4kb. Sin embargo, el sistema operativo puede asignar más de una página a la vez si así lo desea, y así implementar efectivamente páginas de 8kb, 16kb o 32kb en software.
Los procesadores x86 y x86_64 también pueden mezclar respectivamente páginas de 4mb y 2mb junto con las páginas estándar de 4kb. Si esa capacidad se usa, se usaría principalmente para asignar espacio en el núcleo.
fuente