Reichen 2 GB oder doch lieber 4 GB ?

@HisN: Es gibt keine GiBi sondern nur GiB oder GibiB
@Saturas: GiB != GB (!= heißt ungleich)
Nach einer vor ein paar Jahren verabschiedeten und leider defacto auch gescheiterten Norm wird KB/MB/GB usw auf 1000er Basis gerechnet, und wenn die 1024er-Basis gemeint wird, muss das "i" angehängt werden für
KibiByte
MebiByte
GibiByte
TebiByte

Edit: Ah ok selbst den Screenshot angeschaut, dir ging's gar nicht um die Umrechung an sich sondern um den allgemein hohen Wert :-)
Naja was sagt denn schon eine allgemeine Memory Usage an? Wieso zeigst du nicht, wie sich der Speicherbedarf auf die Prozesse aufteilt?
 
Zuletzt bearbeitet:
@166
Nach meinen Informationen bekommt jedes Programm unter 32-Bit-Windows einen Virtuellen Adressraum von 2GB zugewiesen. Hast Du ne Quelle mit den 4GB, was sollte das bringen wenn das Programm davon sowieso nur 1,8GB maximal nutzen darf? Unter Windows_X64 bekommt ein 32-Bit-Programm die 4GB Virtuellen Speicher zugewiesen. Vielleicht schmeisst Du ein bisschen durcheinander^^
Bist Du zufällig meinem Link zu MS gefolgt? Die 4GB Physikalisch vorhandener Speicher werden auf 2GB User-Space (da kommen die vom Anwender gestarteten Programme rein) und 2GB Kernel-Space (da hat nur der Kernel drauf Zugriff) geteilt. Das jedes Programm Virtuell 2GB zugewiesen bekommt ist mir bewusst, aber das "WorkingSet" wird glaub ich immer noch vom OS kontrolliert und Angepasst und ist nicht ständig 2GB gross sondern meistens deutlich niedriger.
Mir ist bewusst das ein Prozess maximal 1,8GB (oder wie auch immer Du es korrekt nennen möchtest, mir geht es nicht um 100 oder 200MB, sorry für mein Halbwissen) für sich veranschlagen darf. Wenn man jetzt 2 von diesen Prozessen hat, dann werden die 2GB physikalisch vorhander Speicher damit gefüllt, der Rest kommt in die Swapdatei. Korigier mich bitte wenn ich da falsch liege.

Und was ist die Aussage (gibt es übrigens auch manchmal auf meinen Screenshots) wenn ein Prozess z.b. 1GB an Speicher belegt? Ist doch eigentlich egal, weil man immer einen "Gesamtspeicherverbrauch" von allen laufenden Programmen + Windows hat. Wenn man sich jetzt COH anschaut, das genau 1GB Prozess-Speicher braucht und sich denkt: "Wie cool, dann kauf ich mir einen Rechner mit 2GB, dann bin ich gut gewappnet" der liegt halt einfach falsch, oder deutlich zu niedrig, weil im Speicher nicht nur das Programm und das OS liegen sondern noch ne ganze Menge mehr liegt. Und Du willst mir jetzt nicht sagen das ich z.b. den Datenträger-Cache nicht mit einrechnen sollte, der trägt doch wohl MAßGEBLICH zur Leistung des Gesamtsystems bei.
 
Zuletzt bearbeitet:
Ich hab ne Quelle für "Hast Du ne Quelle mit den 4GB":
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx schrieb:
Operating systems based on Microsoft Windows NT technologies have always provided applications with a flat 32-bit virtual address space that describes 4 gigabytes (GB) of virtual memory

Ich glaube nicht dass ich was durcheinander schmeiße, sondern du virtuell und real verwechsest..
Die dort erwähnten virtuellen 4 GB haben rein gar nichts mit der realen Speicherbelegung und vor allem mit der Bestückung zu tun. Wenn dein Rechner nur 512 MB hat, oder 4 GB RAM, es sieht aus Sicht des Prozesses immer gleich aus. Das ist der Sinn des Flat-Modells, es vereinfacht die Programmierung ungemein.
Ausgelagert werden kann fast der komplette Arbeitsspeicher (außer ein paar Kernel-Teile), und für viele Speicherseiten macht es auch keinen Sinn (wegen häufigem Zugriff).

Relevant ist vor allem was der Prozess braucht. Programme, die nichts zu tun haben, auch Kernel-Teile, können wenn nicht benötigt ausgelagert werden.

Edit: also wenn ein Spiel 1 GB RAM wirklich braucht (also nutzen versucht) und man Rechner mit 1,5 GB und 2 GB RAM vergleicht, dürfte der Unterschied unter XP nicht soo arg groß werden...
 
Zuletzt bearbeitet:
*gröhl* der gleiche Link den ich auch gepostet habe^^

Operating systems based on Microsoft Windows NT technologies have always provided applications with a flat 32-bit virtual address space that describes 4 gigabytes (GB) of virtual memory. The address space is usually split so that 2 GB of address space is directly accessible to the application and the other 2 GB is only accessible to the Windows executive software.

und später

The virtual address space of processes and applications is still limited to 2 GB

Und jetzt Du, wie erklärst Du das? Für mich hört sich das so an als würde ein Prozess genau 2GB Virtuellen Speicher zugewiesen bekommen (unter einem 32Bit-Windows) auch wenn es 4GB sein könnten.
 
Zuletzt bearbeitet:
Virtuelle Speicherverwaltung für Anfänger, Teil 1:
Jeder Win32-Prozess kann auf einen virtuellen Adressraum von 4 GB zugreifen - 4 GB deshalb, weil es, so Gott will, genau 2^32 ist...
Dieser Adressraum wird allerdings unterteilt (siehe erstes Zitat), normalerweise in 2 GB nutzbaren Prozess-Speicher und 2 GB "Systemspeicher" (wichtig die Anführungszeichen). Im Systemspeicher werden Treiber, Kernel-Funktionen (DLLs) etc eingeblendet - bei jedem eizelnen Prozess.
Das im zweiten Zitat erwähnte 2 GB-Limit bezieht sich auf die für den Prozess nutzbaren Speicher, aber nicht auf den gesamten virtuellen Adressraum von 4 GB.
Bei den Server-Versionen wurde dieses Verhältnis allerdings optional auf 3:1 geändert, wahrscheinlich um dem großen Speicherbedarf von Serveranwendungen (Datenbanken usw) entgegenzukommen.

Das Einblenden der Kernel-Funktionen ist notwendig, damit der Prozess auch auf die Kernel-Funktionen und die Windows-APis zugreifen kann usw...

Obwohl jeder Prozess diesen Systemspeicher eingeblendet bekommt (also die DLLs), belegen sie - wenn überhaupt - nur höchstens ein Mal Speicher. Selten benötigte werden nicht einmal ausgelagert, denn die meisten DLL-Dateien sind sogenannte Memory Mapped Files, die der virtuellen Speicherveraltung direkt entgegenkommen - statt auszulagern wird die entsprechende Speicherseite verworfen und kann ohne Probleme aus einer MMF-DLL wieder nachgeladen werden.

Edit: Und natürlich den gleichen Link, den du gepostet hast. Du hast den Text nur nicht verstanden ^^
 
Zuletzt bearbeitet:
Hmmm...

http://www.tecchannel.de/pc_mobile/windows/401755/index11.html
http://support.microsoft.com/kb/555223/de

Dann haben die auch keine Ahnung^^

Ich meine an meiner Grundsätzlichen Aussage, das unter XP32 dem User nur 2GB für Programme zur Verfügung stehen knappst jetzt die Maus auch keinen Faden ab, egal ob ein Programm Virtuell 2GB oder 4GB zugewiesen bekommt^^. Mein Fehler mit dem Virtuellen Speicher. Steh ich zu. Die Grundaussage bleibt aber. XP teilt den Speicher in 2GB UserSpace und 2GB Kernel-Space auf, und nur in den 2GB Userspace dürfen Daten und Programme des Anwenders ausgeführt werden, sollte das Working-Sets aller laufenden User-Programme größer als 2GB werden füllen sie die Swapdatei.
 
Zuletzt bearbeitet:
Ich würde einige der Aussagen die dort getroffen wurden auch als "gewagt" einstufen :P

Und ja, es ist müßig darüber zu diskutieren ob man nun sagt der Prozess bekommt einen virtuellen Adressraum von 4 GB oder der Prozess bekommt einen nutzbaren virtuellen Adressraum von 2 GB...

Wichtig ist nur: Du kannst mehrere Prozesse haben, die alle einen eigenen virtuellen nutzbaren Adressraum von 2 GB haben, du kannst also problemlos 4 GB RAM vollbekommen mit ausreichend Prozessen.

Aber nun schau ich Fußball :-)


Edit: "XP teilt den Speicher in 2GB UserSpace und 2GB Kernel-Space auf, und nur in den 2GB Userspace dürfen Daten und Programme des Anwenders ausgeführt werden"
Nein! XP teilt den Virtuellen Adressraum in 2 GB User-Space und 2 GB-Kernel-Space auf. Das ist ein entscheidender Unterschied!
6 Prozesse die je 400 MB User-Space-Speicher belegen, benötigen zusammen logischerweise ~2,4 GB RAM - da muss bei einem System mit verbauten 4 GB (und nutzbaren sagen wir mal 3,5 GB) RAM noch nicht zwangsläufig ausgelagert werden...
Edit3: Wie gesagt: Als Windows XP auf den Markt kam, waren Rechner mit 512 MB bis 1024 MB Speicher Standard bis High-End... wie sollen denn die 512 MB verbauter Speicher in 2x2 GB aufgeteilt werden?

Edit2: Wie du weißt gibt es doch auch Windows 2003-Server mit bis zu 64 GB RAM im 32-Bit-Betrieb dank PAE... dort findet die exakt gleiche Aufteilung statt mit 2x2 GB (oder halt wahlweise 1x3 GB und 1x1 GB). Deiner Logik nach dürfte ein solcher Server aber nie mehr als 4 GB im RAM belegen können...


Edit4: Ach ja ich finde die englischen Texte übrigens besser, da die deutschen maschinell übersetzt sind meist und oft keinen großen Sinn ergeben...
http://support.microsoft.com/kb/555223/en-us

Da steht z.B.
http://support.microsoft.com/kb/555223/en-us schrieb:
At some point, the resource in critical short supply can not be increased. This means an architectural limit has been reached. Some commonly reported architectural limits in Windows include:

1. 2 GB of shared virtual address space for the system
2. 2 GB of private virtual address space per process
3. 660 MB System PTE storage
4. 470 MB paged pool storage
5. 256 MB nonpaged pool storage
Gerade Punkt 1 und 2 sind für uns relevant.
Der virtuelle Adressraum von 4 GB setzt sich aus Punkt 2 und Punkt 1 zusammen, der System-Adressraum ist für alle Prozesse wie man sieht identisch. Aber nur weil es Systemadressraum ist heißt das nicht, dass er nicht ausgelagert werden kann, genauso dass er wirklich 2 GB Arbeitsspeicher benötigt.
 
Zuletzt bearbeitet:
Zurück
Oben