Linux utilise un système de mémoire virtuelle où toutes les adresses sont des adresses virtuelles et non des adresses physiques. Ces adresses virtuelles sont converties en adresses physiques par le processeur.
Pour faciliter cette traduction, la mémoire virtuelle et physique sont divisées en pages. Un numéro unique est attribué à chacune de ces pages. le numéro du cadre de la page.
Certaines tailles de page peuvent être de 2 Ko, 4 Ko, etc. Mais comment ce numéro de taille de page est-il déterminé? Est-ce influencé par la taille de l'architecture? Par exemple, un bus 32 bits aura 4 Go d'espace d'adressage.
Le matériel (en particulier la MMU , qui fait partie de la CPU) détermine les tailles de page possibles. Il n'y a pas de relation avec la taille du registre du processeur et seulement une relation indirecte avec la taille de l'espace d'adressage (en ce sens que la MMU détermine les deux).
Presque toutes les architectures prennent en charge une taille de page de 4 Ko. Certaines architectures prennent en charge des pages plus grandes (et quelques-unes également des pages plus petites), mais 4 Ko est un paramètre par défaut très répandu.
Linux supporte deux tailles de page:
CONFIG_HUGETLB_PAGE
est nécessaire, etCONFIG_HUGETLBFS
aussi pour la plupart des utilisations). Cela correspond au deuxième niveau le plus profond de descripteurs MMU (ce que Linux appelle PMD) (ou du moins c'est généralement le cas, je ne sais pas si cela est valable pour toutes les architectures).La taille de la page est un compromis entre l'utilisation de la mémoire, l'utilisation de la mémoire et la vitesse.
Les gains de grandes tailles de page sont minimes pour la plupart des applications, alors que leur coût est considérable. C'est pourquoi la plupart des systèmes n'utilisent que des pages de taille normale.
Vous pouvez interroger la taille de la page (normal) sur votre système avec l'
getconf
utilitaire ou la fonction Csysconf
.L'utilisation de pages volumineuses nécessite de monter le
hugetlbfs
système de fichiers etmmap
les fichiers ping à cet endroit.la source
La taille de la page dépend principalement de l'architecture du processeur. Sur x86, à partir du moment où le processeur 386 a introduit le mode protégé, la taille de la page a été de 4 ko.
En mode x64, il peut également y avoir d’énormes pages, d’une taille de 2 Mo. Cependant, les utiliser est un peu compliqué.
Vous pouvez trouver plus d'informations sur la taille de la page dans l'article Wikipedia
la source
Le processeur détermine les formats de page disponibles. Dans la plupart des cas, la taille de page implémentée matériellement sur les processeurs x86 et x86_64 est de 4 Ko. Cependant, le système d'exploitation peut allouer plus d'une page à la fois s'il le souhaite, et implémenter ainsi efficacement des pages de 8 Ko, 16 Ko ou 32 Ko dans un logiciel.
Les processeurs x86 et x86_64 peuvent également mélanger des pages de 4 Mo et 2 Mo avec les pages standard de 4 Ko. Si cette capacité est utilisée, elle sera principalement utilisée pour allouer de l’espace au noyau.
la source