Speicherverwaltung unter Windows XP x6
256 Terabyte RAM

BetriebssystemWorkspace

Die 64-Bit-Version von Windows XP unterscheidet sich auf den ersten Blick kaum von der 32-Bit-Ausgabe. Die Unterschiede liegen unter der Haube: Die Windows XP Professional x64 Edition kann riesige Mengen Arbeitsspeicher adressieren.

Mehr Leistungsreserven

Speicherverwaltung unter Windows XP x6

Gegen den Umstieg auf ein 64-Bit-Betriebssystem spricht noch immer vieles, beispielsweise die fehlenden Treiber und die wenigen nativen Anwendungen. Wer allerdings Unmengen an Arbeitsspeicher braucht, kommt an 64 Bit nicht vorbei. Programme haben hier einfach mehr Leistungsreserven: Video-Encoder arbeiten schneller, Datenbank-Server schaffen mehr Transaktionen und auch 3D-Modeling-Software oder professionelle Bildbearbeitung profitiert davon. Denn das klassische Windows XP für 32-Bit-Systeme kann ohne Tricks nicht mehr als 4 GByte Arbeitsspeicher ansprechen. Mehr kann der 32-Bit-Bus auch nicht adressieren, denn es gibt nur 232 Möglichkeiten. Das reicht für die Unterscheidung der 4 GByte.

Eine reine 64-Bit-Architektur kann dagegen theoretisch 264 verschiedene Adressen über ihren Bus ansprechen. Das entspricht der fast unvorstellbaren Menge von 16 Exabyte. Zum Vergleich: Alle gedruckten Werke der Erde würden auf etwa 0,2 Exabyte Speicher passen.


Mehr RAM für 32-Bit

Speicherverwaltung unter Windows XP x6

In der 32-Bit-Praxis spüren Anwender schon die magische Grenze von 2 GByte beim Arbeiten, die sich einem Programm maximal zuordnen lässt den Rest knapst sich Windows selbst vom Arbeitsspeicher für Betriebssystem-Funktionen ab. Speicherhungrige Programme wie zum Beispiel CAD-Anwendungen oder wissenschaftliches Rechnen sind mit speziellen Optionen kompiliert, die es ausnahmsweise erlauben, auch 3 GByte Speicher zu nutzen (XP-Startoption /3GB in boot. ini), und nur 1 GByte für das Betriebssystem reservieren (4-GByte-Tuning).

Ein zweiter Ansatz, wie sich auch unter 32-Bit-Systemen mehr RAM nutzen lässt, ist die Technik AWE (Address Windowing Extensions). Dabei wird eine CPU-Technik namens PAE (Physical Address Extension) genutzt, die vor allem für den Server-Einsatz gedacht ist. Deswegen unterstützen Mainboard-Chipsätze für Desktop-PCs PAE nicht. Der Clou dabei: Die Prozessoren nutzen 36 Bit für die Adressierung.


Mehr Speicher, als man kaufen kann

Speicherverwaltung unter Windows XP x6

Solche Tricks sind bei der Windows XP x64 Edition nicht nötig. Die x64-Architektur unterstützt momentan mehr Speicher, als sich auf aktuelle Mainboards packen lässt. Dabei wird für die Adressierung nicht einmal die komplette Breite des Adressbus verwendet, sondern lediglich 48 Bit. Das führt zu einem theoretischen Maximum von 256 Terabyte unter x64 das ist immer noch unvorstellbar viel Arbeitsspeicher.

Doch Vorsicht ist geboten. Mit den aktuell auf dem Markt erhältlichen Desktop-Chipsätzen und den verfügbaren RAM-Modulen ist bei 8 GByte Schluss. Windows XP x64 hat jedoch heute schon ein gutes Polster für Prozessoren, Chipsätze und RAM-Bausteine von morgen. Mit bis zu 128 GByte soll sich XP x64 betreiben lassen, wenn es denn einmal die entsprechenden Mainboards nebst Speichermodulen gibt.

Weitere Leistungsspitzen: In einem PC mit XP x64 lassen sich mit virtuellen Adressen 8 TByte (8192 GByte) RAM für einzelne Prozesse im User-Space nutzen. Weitere 8 TByte stehen für das Betriebssystem (Kernel-Space) zur Verfügung. Macht insgesamt 16 TByte Arbeitsspeicher (siehe dazu Tabelle »Speicher unter XP x86 und x64«). Um in diese Dimensionen vorzustoßen, ist die Speicherverwaltung der x64-Edition von Windows XP Professional mit speziellen Funktionen ausgestattet.


RAM-Verwaltung tief in Windows

Speicherverwaltung unter Windows XP x6

Die Speicherverwaltung unter Windows ist Teil der Ausführungsschicht und in der Datei ntoskrnl.exe realisiert, die im Windows-Verzeichnis liegt. Ihre Hauptaufgabe ist die Implementierung von virtuellem (logischem) Speicher. Dabei sieht jedes laufende Programm nur den vom Betriebssystem vorgegaukelten virtuellen Speicher und glaubt, dass es den ganzen Adressraum für sich alleine hat. In Wirklichkeit teilen sich aber alle Prozesse den Arbeitsspeicher. Aufgabe von Windows ist es dann, die virtuellen Adressen in »echte«, also physisch vorhandene RAM-Adressen umzusetzen.

Der große Vorteil dabei: Programme können durch virtuellen Speicher insgesamt mehr RAM beanspruchen, als wirklich im Rechner steckt im Hintergrund lagert dann das Betriebssystem unbemerkt Teile aus dem Arbeitsspeicher auf die Festplatte aus.


Virtual Memory unter x64

Speicherverwaltung unter Windows XP x6

Speicherbereiche im virtuellen Adressraum werden in so genannte Seiten eingeteilt, deren Größe auf x64-Systemen wahlweise 4 KByte oder 2 MByte beträgt. Kernbestandteile von Windows werden in der Regel auf große Seiten abgebildet, weil das Performance-Vorteile bietet. Die Zuordnung von virtueller zu echter Adresse erfolgt über eine Tabelle. Ein CPU-Register zeigt auf die Startadresse der Tabelle, die selbst auch im RAM liegt. Darauf wird dann ein Offset addiert, der zum passenden Adresseintrag in der Tabelle führt. Dieser verweist dann wiederum auf die physische Speicherzelle. Da diese Tabelle für 64-Bit-Systeme sehr groß wird, würde sie sehr viel Platz im Arbeitsspeicher verschwenden.

Eine Alternative sind Multilevel-Seitentabellen; bei der x64-Architektur kommen 4-stufige Tabellen zum Einsatz. Die obersten 9 Bit der 48-Bit-Adresse werden für die Seitentabelle der Ebene 4 (Hauptseitenverzeichnis) verwendet. Doch der gefundene Eintrag zeigt nicht in den physischen RAM, sondern verzweigt wiederum auf eine Tabelle, diesmal auf Ebene 3. Dort kommen dann die Bits 30 bis 38 der 48-Bit-Adresse ins Spiel, um den passenden Tabelleneintrag zu finden. Dieses Spiel setzt sich auf Ebene 2 und 1 fort, bis der richtige Eintrag im physisch vorhandenen RAM gefunden wird.


Schutz vor Buffer-Overflows

Speicherverwaltung unter Windows XP x6

Die x64-Prozessoren haben zwar eine Adressbusbreite von 64 Bit, belegen aber einige Bit von vornherein mit anderen Aufgaben. Windows XP Pro x64 unterstützt etwa das NX-Bit der x64-Prozessoren von AMD und Intel und benennt die Funktion mit dem unhandlichen Begriff Datenausführungsverhinderung (Data Execution Prevention, DEP). Soll Code ausgeführt werden, der in einer Speicherseite steht, die als »nicht ausführbar« gekennzeichnet ist, wird ein interner Fehler verursacht. DEP lässt sich für native 64-Bit-Programme und -Treiber unter Windows nicht abschalten.

Wer die Speichernutzung des Systems kontrollieren will, bekommt dafür von Windows einige Werkzeuge bereitgestellt oder kann sich aus den kostenlosen Support-Tools von der Windows-XP-CD und den Ressource-Kits bedienen. Schon in Windows XP enthalten ist der Systemmonitor, den Sie über Start/Ausführen und den Befehl perfmon starten können. Klicken Sie im Menü oberhalb der angezeigten Kurven auf das Plus-Symbol oder wählen Sie den Shortcut [Strg] + [I]. Klicken Sie auf das Datenobjekt Process, den Leistungsindikator Working Set und die Prozessinstanz _Total. Klicken Sie dann auf Hinzufügen. Die neue Anzeige visualisiert die Gesamtgröße der Prozessarbeitsseiten. Mit speziell angepassten Tools wie dem Process Explorer von Sysinternals (PCP-Code: PEXPL) können Sie auch unter Windows XP x64 Prozesse beobachten.


Microsoft und 64-Bit-Support

Speicherverwaltung unter Windows XP x6

Windows XP x64 ist nur eine Übergangslösung. Die ersten 64-Bit-Betriebssysteme für die x64-Architektur kamen aus dem Linux-Lager. Da auch die Entwicklung von Windows Vista stockte, sah sich Microsoft gezwungen, eine 64-Bit-Version von XP auf den Markt zu bringen.

Richtig losgehen mit 64 Bit soll es aber erst mit Vista. Sämtliche Vista-Varianten mit Ausnahme der Starter Edition sollen für 32- und 64-Bit-Prozessoren angeboten werden. Im Server-Bereich macht Microsoft dagegen einen härteren Schnitt. So so
ll es den neuen Exchange-Server (Version 12) nur noch für die leistungsfähigere 64-Bit-Plattform geben.