„4-GB-Grenze“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Vorlage:Datenmengen; umgestellt auf normkonforme Einheiten
K hat „4-GB-Grenze“ nach „4-GiB-Grenze“ verschoben: Einheiten eingefuehrt, die aktuellen Normen genuegen
(kein Unterschied)

Version vom 29. Dezember 2009, 17:25 Uhr

Die 4-GiB-Grenze (nach veralteter Nomenklatur auch 4-GB-Grenze) bezeichnet die maximale Größe des Arbeitsspeichers, den ein Prozess unter einem 32-Bit-Betriebssystem direkt benutzen kann, ohne auf Segmentierungstechniken zurückzugreifen.

 Problembeschreibung

Das Problem tritt z. B. bei x86-Prozessoren auf, die zur Adressierung von Daten im Arbeitsspeicher 32 Bit lange Wörter (unsigned Integer) verwenden. Durch diese Beschränkung ist es den betroffenen Prozessoren nicht möglich, mehr als 232 Byte, also 4 GiB, anzusprechen. Diese Einschränkung gilt sowohl für den logischen, virtuellen, also den von Programmen ansprechbaren, als auch für den physischen Adressraum, den im System installierten Arbeitsspeicher. Die meisten der im Desktopbereich eingesetzten Computer verwenden heute 32 Bit und sind so von der 4-GiB-Grenze betroffen. Selbst wenn der real installierte Arbeitsspeicher eines Computers kleiner als 4 GiB ist, kann die 4-GiB-Grenze auf einige Programme Auswirkungen haben, etwa auf Anwendungen, die große memory-mapped Dateien verwenden.

Der linear adressierbare Speicher kann praktisch nicht lückenlos mit RAM belegt werden, gängige Computerarchitekturen zweigen Adressraum für die Einblendung von System-ROM und IO-Bereichen ab, z. B. Onboard- und Erweiterungshardware wie Grafik- und Soundkarten, Centronics- oder USB-Schnittstellen. Im x86-Umfeld sind 2,0 bis 3,75 GB RAM üblicherweise nutzbar, die genauen Werte hängen vom Mainboard und Ausbau an internen Erweiterungskarten ab.

Problembehebung

Heute werden auch im Desktop-Bereich 64-Bit-Systeme angeboten, die zusammen mit einem 64-Bit-Betriebssystem keine Begrenzung des Hauptspeichers auf 4 GiB aufweisen. Hier liegt die Grenze des Adressraums bei 264 Byte, also 16 EiB (Exbibyte). Viele Prozessoren, wie die der AMD64-Architektur, verfügen aber nicht über die notwendigen 64 Adressleitungen, um so viel Arbeitsspeicher anzusprechen. Der physische Adressraum ist also auch hier wesentlich kleiner. Die Problematik der Verbreiterung der Adressen ist, dass 64-Bit-Betriebssysteme nur 64-Bit-Treiber verwenden können. Proprietäre 64-Bit-Treiber waren nach der Einführung dieser Betriebssysteme selten und sind es heute für alte, spezielle und seltene Hardware immer noch. Außerdem können die Anwendungen, sofern sie nicht speziell für 64-Bit-Umgebungen kompiliert wurden, weiterhin nur 4 GiB verwenden, da die internen Adressen weiterhin 32 Bit lang sind.

Unter 32-Bit-Systemen gibt es mit PSE36 und PAE Möglichkeiten, die 4-GiB-Grenze zu überschreiten. Diese Prozessorerweiterungen vergrößern allerdings nur den physisch adressierbaren Speicher, jeder Prozess für sich kann weiterhin nur 4 GiB Daten gleichzeitig adressieren. Unter Microsoft Windows existiert außerdem die Möglichkeit, über eine AWE genannte Schnittstelle physische Speicherseiten jenseits der 4-GiB-Grenze in den logischen Adressraum des Prozesses einzublenden, womit ein 32-Bit-Prozess insgesamt mehr als 4 GiB ansprechen kann.

Vorlage:Datenmengen