Computergrundlagen zum Thema Speicher

Computergrundlagen zum Thema Speicher

Wenn die Kapazität des Hauptspeichers 2 GB beträgt, welches könnte das größte Programm sein, auf das der Prozessor mit Unterstützung eines 32-Bit-Adressbusses zugreifen kann?

Antwort1

Wenn Sie einen 32-Bit-Adressraum haben, können Sie 2^32 (4Gi) Byte Speicher adressieren. Was ein Programm betrifft, das im virtuellen Adressraum läuft, sehe ich keinen Grund, warum es nicht 4GiB adressieren und darauf zugreifen könnte.

Dies setzt einige Dinge voraus, wie z. B. ein Betriebssystem, das virtuellen Speicher verwendet, möglicherweise etwas Hardware (MMU) zur Unterstützung usw. Aber für jede moderne 32-Bit-CPU und jedes moderne Betriebssystem sollte dies kein Problem sein. Alles Moderne unterstützt Paging, es muss also nur der Teil dieser 4 GiB vorhanden sein, auf den es derzeit im physischen Speicher zugreift.


Soviel zu einer allgemeinen Antwort, jetzt eine für Windows und x86.

Windows (seit Win2000?) verwendet virtuellen Speicher und Paging. Außerdem wird der 4-Gi-Adressbereich standardmäßig in zwei Hälften geteilt. Die obere Hälfte für den Kernel, die untere Hälfte für Benutzerprogramme. Dadurch ergibt sich eine künstliche Beschränkung von 2-GiB-Adressen für Benutzerprogramme oder 3-GiB, wenn Sie den Kernel in einem speziellen Modus booten und LARGEADDRESSAWARE-Programme verwenden.

Dadurch werden Ihre Benutzerprogramme darauf beschränkt.

Dann gibt es noch PAE, das Ihren Speicherbus künstlich auf 36 Bit erweitert. PAE ist ein hässlicher Kludge und wird seit 64-Bit-CPUs (die in den letzten zwei Jahrzehnten üblich waren) nicht mehr benötigt.

Dies entwickelt sich zu einem „Was wäre wenn“- und dann „Antwort X“-Beitrag. Das heißt, es wäre schön, eine spezifischere Frage zu haben.

Antwort2

Theoretisch wären das 2 GB, ein Teil davon wird jedoch reserviert und/oder vom Betriebssystem selbst verwendet.

Beachten Sie, dass auch 32-Bit-Prozesse auf 2 GB beschränkt sind, selbst wenn Sie sie auf einem 64-Bit-Betriebssystem ausführen, sofern sie nicht absichtlich neu gestaltet werden. Bei einer Neugestaltung unter Berücksichtigung von IMAGE_FILE_LARGE_ADDRESS_AWARE wird das Limit wie folgt:laut MSDN, 3 GB.

verwandte Informationen