Linux verwendet ein virtuelles Speichersystem, bei dem alle Adressen virtuelle Adressen und keine physischen Adressen sind. Diese virtuellen Adressen werden vom Prozessor in physikalische Adressen umgewandelt.
Um diese Übersetzung zu vereinfachen, sind der virtuelle und der physische Speicher in Seiten unterteilt. Jede dieser Seiten erhält eine eindeutige Nummer. die Seitenrahmennummer.
Einige Seitengrößen können 2 KB, 4 KB usw. sein. Aber wie wird diese Seitengrößennummer bestimmt? Wird es von der Größe der Architektur beeinflusst? Ein 32-Bit-Bus verfügt beispielsweise über einen Adressraum von 4 GB.
Die Hardware (insbesondere die MMU , die Teil der CPU ist) bestimmt, welche Seitengrößen möglich sind. Es gibt keine Beziehung zur Prozessorregistergröße und nur eine indirekte Beziehung zur Adressraumgröße (insofern bestimmt die MMU beide).
Fast alle Architekturen unterstützen eine Seitengröße von 4 KB. Einige Architekturen unterstützen größere Seiten (und einige unterstützen auch kleinere Seiten), 4 KB sind jedoch eine weit verbreitete Standardeinstellung.
Linux unterstützt zwei Seitengrößen:
CONFIG_HUGETLB_PAGE
ist notwendig undCONFIG_HUGETLBFS
auch für die meisten Verwendungszwecke). Dies entspricht der zweittiefsten Ebene der MMU-Deskriptoren (was Linux PMD nennt) (oder zumindest normalerweise, ich weiß nicht, ob dies für alle Architekturen gilt).Die Seitengröße ist ein Kompromiss zwischen Speichernutzung, Speichernutzung und Geschwindigkeit.
Die Vorteile größerer Seitengrößen sind für die meisten Anwendungen gering, wohingegen die Kosten erheblich sind. Aus diesem Grund verwenden die meisten Systeme nur Seiten mit normaler Größe.
Sie können die (normale) Seitengröße auf Ihrem System mit dem
getconf
Dienstprogramm oder der C-Funktion abfragensysconf
.Wenn Sie große Seiten verwenden möchten, müssen Sie das
hugetlbfs
Dateisystem bereitstellen und dortmmap
Ping-Dateien senden.quelle
Die Seitengröße hängt hauptsächlich von der Prozessorarchitektur ab. Aus der Zeit des 386-Prozessors, der den geschützten Modus einführte, betrug die Seitengröße auf x86 4 kB.
Im x64-Modus können auch große Seiten mit einer Größe von 2 MB vorhanden sein. Die Verwendung dieser ist jedoch etwas kompliziert.
Weitere Informationen zur Seitengröße finden Sie im Wikipedia-Artikel
quelle
Der Prozessor bestimmt die verfügbaren Seitengrößen. In den meisten Fällen beträgt die in der Hardware implementierte Seitengröße auf x86- und x86_64-Prozessoren 4 KB. Das Betriebssystem kann jedoch mehr als eine Seite gleichzeitig zuweisen, wenn es dies wünscht, und dadurch effektiv 8-kb-, 16-kb- oder 32-kb-Seiten in der Software implementieren.
Die Prozessoren x86 und x86_64 können neben den Standard-4-KB-Seiten auch 4-MB- und 2-MB-Seiten mischen. Wenn diese Funktion überhaupt verwendet wird, wird sie hauptsächlich zum Zuweisen von Kernelspeicher verwendet.
quelle