Was ich über 32-Bit-Betriebssysteme verstehe, ist, dass die Adresse in 32 Bit ausgedrückt wird, sodass das Betriebssystem höchstens 2 ^ 32 = 4 GB Speicherplatz verwenden kann
Der Prozess kann höchstens 4 GB adressieren . Möglicherweise verwechseln Sie den Speicher mit dem Adressraum . Ein Prozess kann mehr Speicher als Adressraum haben. Dies ist völlig legal und in der Videoverarbeitung und anderen speicherintensiven Anwendungen durchaus üblich. Einem Prozess können Dutzende GB Arbeitsspeicher zugewiesen werden, und er kann nach Belieben in den Adressraum und aus dem Adressraum ausgelagert werden. Es können jeweils nur 2 GB in den Benutzeradressraum eingegeben werden.
Wenn Sie eine Garage für vier Autos in Ihrem Haus haben, können Sie immer noch fünfzig Autos besitzen. Sie können nicht alle in Ihrer Garage aufbewahren. Sie müssen einen zusätzlichen Speicher haben, um mindestens 46 davon zu speichern. Welche Autos Sie in Ihrer Garage und welche Sie auf dem Parkplatz unten auf der Straße aufbewahren, bleibt Ihnen überlassen.
Bedeutet dies, dass ein 32-Bit-Betriebssystem, sei es Windows oder Unix, niemals "Arbeitsspeicher verbraucht" wird, wenn der Computer über RAM + Auslagerungsdateien auf der Festplatte verfügt, die größer als 4 GB sind, z. B. 8 GB RAM und 20 GB Auslagerungsdateien?
Absolut heißt das nicht. Ein einzelner Prozess könnte mehr Speicherplatz verbrauchen! Auch hier ist die von einem Prozess belegte Speichermenge nahezu unabhängig von der von einem Prozess belegten Menge an virtuellem Adressraum. Genau wie die Anzahl der Autos, die Sie in Ihrer Garage aufbewahren, hängt auch die Anzahl der Autos, die Sie besitzen, nicht davon ab.
Darüber hinaus können zwei Prozesse nicht-private Speicherseiten gemeinsam nutzen . Wenn zwanzig Prozesse alle dieselbe DLL laden, teilen sich die Prozesse alle die Speicherseiten für diesen Code. Sie teilen sich nicht den Adressraum des virtuellen Speichers , sondern den Speicher .
Mein Punkt, falls es nicht klar ist, ist, dass Sie aufhören sollten, Gedächtnis und Adressraum als dasselbe zu betrachten, weil sie überhaupt nicht dasselbe sind.
Wenn dieses 32-Bit-Betriebssystem über 2 GB RAM und 2 GB Auslagerungsdatei verfügt, wirkt sich eine Vergrößerung der Auslagerungsdatei nicht auf die Leistung aus. Ist das wahr?
Sie haben fünfzig Autos und eine Garage für vier Autos und einen Parkplatz für 100 Autos die Straße hinunter. Sie vergrößern den Parkplatz auf 200 Plätze. Wird eines Ihrer Autos schneller, weil Sie jetzt 150 statt 50 zusätzliche Parkplätze haben?