12
« am: 31. October 2005, 16:08 »
Also:
Der Virtuelle Adressraum für jeden Prozess beträgt maximal 4GB gleichzeitig, da dort mit 32Bit Adressen gearbeitet wird. Wenn die CPU kein PAE hat, ist das auch gleichzeitig die Grenze für den Physischen RAM, da das Paging dann auch nur 32Bit Adressen aktzeptiert. Hat die CPU allerdings PAE, dann kann man 32GB im Paging verwalten, da man bei PAE 36Bit Adressen angeben kann, für den Prozess bleiben dennoch nur 32Bit, er merkt garnicht wo er rumschreibt.
PSE hat mit dem ganzen nichts zu tun, das ermöglicht lediglich Pagegrössen in 2(nicht immer) und 4MB, was die den Speicherverbrauch von Paging verringert, da für ein 4MB eintrag 1024 4kb Einträge weniger gemacht werden müssen was wieder 4kb gespart hat, ausserdem ist die Verwendung von PSE Cachefreundlicher, da es für 4MB Einträge einen extra TLB gibt. Wenn man den Kernel in 4MB Pages unterbringt und man die Pages als Global markiert (sie werden dann beim cr3 wechsel nicht aus dem TLB entfernt) erreicht man schon einen Geschwindigkeitszuwachs, da die CPU statt im RAM in ihrem eigenen Cache nachschauen kann, was ja bekanntermassen schneller sein dürfte.