Artikel kann ich dir dazu im Moment leider nicht geben.
Es ist aber so, dass Vista den 4 GB großen Adressraum in zwei gleich große Bereiche aufteilt. Die unteren 2 GB stehen den Anwendungen zur Verfügung, während die oberen 2 GB nur dem Betriebssystem, den Treibern und der Hardwareadressierung zur Verfügung stehen.
Unter WinXP konnte man das Verhältnis noch auf 3 GB Userspace und 1 GB Kernelspace ändern, aber unter Vista funktioniert das aus Kompatibilitätsgründen nicht mehr und es sind nur noch 50%/50% möglich.
Es ist also völlig egal, wie viele Anwendungen du startest. Diese können immer nur die unteren 2 GB verwenden. Wenn sie mehr benötigen wird ausgelagert, selbst wenn in den oberen 2 GB noch etwas frei ist.
Die oberen 2 GB sind also nur für die Ring 0 Prozesse reserviert.
Nun ist es aber so, dass 2 GB für diesen Zweck völlig überdimensioniert sind. So viel benötigen die ganzen Treiber und der Betriebssystem-Kernel gar nicht. In Vista wurde jetzt auch noch das grafische Subsystem aus dem Kernel heraus in den Userspace verschoben, sodass die oberen 2 GB noch weniger ausgelastet werden.
Es macht also kaum etwas aus, wenn man in den oberen 2 GB ein paar 100 MB einbüßt. Der obere Speicherbereich wird eh nur zu einem winzig kleinen Bruchteil genutzt, wäre da nicht SuperFetch.
Dieses Feature ist das Einzige, was auch den Kernelspace zum Cachen von Anwendungsdaten nutzen kann. Mit einem 64 Bit OS hätte man dort also ~700 MB mehr Speicher für diesen Cache vorhanden. Das wäre also ein kleiner Vorteil.
Der Nachteil eines 64 Bit Systems ist aber der, dass die Anwendungen mehr Speicher belegen. Nicht nur sind die Sprungadressen jetzt doppelt so lang, sondern auch die Datentypen haben einen größeren Wertebereich.
Ich weiß nicht, ob du dich im Programmieren auskennst, aber wenn du in einem C Programm zum Beispiel 100 integer Werte speichern willst, dann nehmen die pro Wert 2 Byte ein, was also insgesamt 200 Byte im Arbeitsspeicher belegt.
Läuft nun das selbe Programm auf einem 64 Bit System, dann belegt so ein Wert schon 4 Byte, womit der Gesamtbedarf für diese 100 Zahlen auf 400 Byte ansteigt. Der Speicherbedarf hat sich also verdoppelt, obwohl sich am Programm nichts geändert hat.
Es ist aber nicht so, dass sich der Speicherbedarf grundsätzlich verdoppelt. So schlimm ist es nicht, aber er ist doch spürbar größer. Es kommt auch immer auf die Programmiersprache an. In Java geschriebene Programme haben das "Problem" nicht.
Den Effekt kann man übrigens schon nach dem Installieren von Windows beobachten. Vista64 belegt deutlich mehr Platz auf der Festplatte und im Arbeitsspeicher als das 32 Bit Vista.
Letztendlich ist es also so, dass man mit beiden Systemen immer nur 2 GB für die Anwendungen bereitstellen kann. Da ändert auch die Tatsache nichts dran, dass man die vollen 4 GB Arbeitsspeicher adressieren kann oder nicht.
Der Unterschied ist jetzt nur, dass in diese 2 GB auf einem 32 Bit System viel mehr Daten abgelegt werden können als auf einem 64 Bit System, wenn ich das mal so ausdrücken darf. (Stimmt nicht ganz, beschreibt aber den Sachverhalt.)
Von daher spricht absolut nichts dagegen mit 4 GB auch noch ein 32 Bit System einzusetzen. Der Vorteil ist, dass die Anwendungen platzsparender sind und der Nachteil ist, dass SuperFetch weniger Cache zur Verfügung hat.





Zitieren
