2 GB Limit für 32-Bit-Betriebssysteme

8

Bedeutet die Beschränkung auf 2 GB bei 32-Bit-Betriebssystemen, dass jeder Prozess nur auf 2 GB Speicher zugreifen kann oder dass alle Prozesse zusammen nur 2 GB des physischen Speichers insgesamt verwenden können?

Sind die 2 GB, die für das Kernel-Limit reserviert sind, die Gesamtmenge, die alle Prozesse zusammen verwenden können?

Verrückter Wissenschaftler
quelle
Bitte beachten Sie, dass sich Fabian nur auf den physischen Speicher bezieht, nicht auf die Auslagerungsdatei.
Arda Xi
Er bezieht sich auch nur auf Windows, nicht auf Betriebssysteme im Allgemeinen.
Arda Xi
Er mag danach fragen, aber es gibt keine solche Beziehung. Jeder Prozess kann auf 2 GB virtuell zugreifen. Ein Teil davon befindet sich im RAM ("resident"). In Windows 32-Bit-Client-Versionen darf der gesamte residente Speicher aller Prozesse plus der residente Speicher des Betriebssystems nicht mehr als 4 GB betragen. Bei der Zuweisung des physischen Speichers gibt es keine Aufteilung von 2 GB.
Jamie Hanrahan
Akzeptierte Antwort in diesem Beitrag gibt vollständige Informationen - stackoverflow.com/questions/490520/…
RBT

Antworten:

4

Es gibt viele Missverständnisse über das Speicherlimit in 32-Bit-Windows-Betriebssystemen.

Wenn ich RAM sage, schließt dies zunächst jede Art von RAM ein. Also nicht nur normal, sondern auch dein Video-RAM.

Die maximal verfügbare RAM-Menge pro Prozess für ein 32-Bit-Betriebssystem beträgt 2 GB. Wenn Sie ein 64-Bit-Betriebssystem haben, kann ein 32-Bit-Prozess bis zu 4 GB zuweisen.

Darüber hinaus kann das gesamte Betriebssystem nur 4 GB für jeden kombinierten Prozess adressieren, während 64-Bit-Betriebssysteme 8 TB zuweisen können.

Interessant ist auch, dass sich dieses Limit zum ausgelagerten Pool summiert. Dies bedeutet, dass ein 32-Bit-Betriebssystem nicht mehr als 2 GB insgesamt verwenden kann, was 6 GB für alle Anwendungen einschließlich des virtuellen Speichers bedeutet. Dies hat natürlich nichts mit RAM zu tun, da die anderen 2 GB in der Auslagerungsdatei gespeichert werden und auf die Geschwindigkeit Ihrer Festplatte beschränkt sind.

Weitere Informationen finden Sie unter Speicherbeschränkungen für Windows-Versionen .

Hinweis: Dies gilt nur für Anwendungen. Ein 32-Bit-Windows-Betriebssystem kann insgesamt bis zu 4 GB zuweisen, 2 GB davon sind jedoch nur für die Systemnutzung vorgesehen, sodass nur 2 GB für Anwendungen zur Verfügung stehen. In bestimmten Fällen (insbesondere bei neueren Betriebssystemen) wird dies für Anwendungen in 3 GB und für den Kernel in 1 GB unterteilt.

Ich habe nur über Windows gesprochen, weil dies der Kontext ist, in dem die Frage gemeint war. Ich bin mit den Grenzen anderer Betriebssysteme nicht vertraut.

Arda Xi
quelle
2
Diese Antwort ist nicht vollständig - sie enthält nicht das Konzept des "Adressraums", außer dass Videospeicher enthalten ist, und die Tatsache, dass der Adressraum unter 32-Bit-Betriebssystemen tatsächlich auf 4 GB ohne Erweiterungen beschränkt ist, nicht auf 2 GB (Sie) kann sogar eine 32-Bit-Kopie von XP anweisen, mit 3 GB RAM zu booten)
lunixbochs
1
Die Frage war nicht, was Adressraum ist. Ich könnte Sie alle langweilen, indem ich die Art und Weise, wie Speicher angesprochen wird, und die Grenze von 32-Bit-Ganzzahlen diskutiere, aber darum geht es bei dieser Frage nicht, daher scheint sie unnötig komplex zu sein. Und ja, Sie können den / 3GB-Schalter verwenden. Diese Frage beinhaltet das nicht.
Arda Xi
1
Die Speicherbeschränkung von 4 GB gilt nur für physischen Speicher in einer 32-Bit-x86-Standardarchitektur. Der virtuelle Speicher ist anders und ein 32-Bit-Betriebssystem kann weit mehr als 4 GB Speicher belegen (insgesamt nicht pro Prozess), wenn eine Auslagerungsdatei oder eine Auslagerungspartition verwendet wird. Die Festplattengeschwindigkeit hat keinen Einfluss auf die verfügbare Auslagerungsdateigröße oder den Auslagerungsspeicher, wenn die Festplatte über Speicherplatz verfügt, als sie seitlich oder austauschen kann. Dies wirkt sich nur auf die Paging- / Swap-Leistung aus.
1
Oh, ich habe vergessen zu erwähnen, dass Video-RAM kein Faktor ist, es sei denn, es ist ein integrierter Video-RAM, der den Haupt-RAM teilt, aber selbst dann wird er nur vom verfügbaren physischen RAM subtrahiert. Der verfügbare virtuelle Speicher wird nicht beeinflusst. Spezielle Grafikkarten verfügen über eigene Prozessoren und Speicher, die keinen Einfluss auf den verfügbaren Systemspeicher haben.
@Spooky Nicht ganz richtig. Wenn Sie sich meinen Link ansehen, werden Sie feststellen, dass der ausgelagerte Pool durch den virtuellen Adressraum im Kernelmodus von 2 GB begrenzt ist. Dies bedeutet insgesamt ca. 6 GB.
Arda Xi
0

Wenn sich das OP auf Windows-Betriebssysteme bezieht, sind alle 32-Bit-Betriebssysteme auf insgesamt 4 GB beschränkt, mit Ausnahme des 2003 Server-Rechenzentrums oder -Unternehmens mit einem Konzept namens PAE (Physical Address Extension). Dies ist auch in modernen Linux-Kerneln verfügbar. Natürlich werden 32-Bit-Prozessoren außerhalb des mobilen Bereichs immer seltener.

skub
quelle