Virtueller Speicher vs. virtueller Adressraum

Virtueller Speicher vs. virtueller Adressraum

Ich weiß, dass virtueller Speicher eine Auslagerungsdatei ist, die der Computer verwendet, um einen Teil des RAM auf der Festplatte für einen laufenden Prozess zu speichern. Aber wie unterscheidet sich der virtuelle Adressraum? Ist es der RAM oder die Festplatte oder beides?

Antwort1

Der virtuelle Adressraum ist das, was ein einzelnes Programm sieht, wenn es ausgeführt wird. Je nachdem, wie das Programm konfiguriert wurde, ist dieser Adressraum so groß wie das vom Betriebssystem unterstützte Maximum.

Der Betriebssystemkernel ist dann für die Zuordnung der Adressen im VAS zum physischen Speicher verantwortlich, sei es RAM oder Systemauslagerungsdateien.

Bei diesem Design sind sich die Programme selbst der Ressourcen und tatsächlichen Adressen nicht bewusst und können so arbeiten, als hätten sie den gesamten Systemspeicher für sich oder zumindest den maximalen Speicher, den ein einzelner Prozess nutzen kann.

Kurz gesagt: Ein Programm arbeitet mit VAS, und das Betriebssystem übernimmt die Zuordnung von VAS zum realen Speicher, sodass dies für das laufende Programm unsichtbar ist. Das laufende Programm sieht nur seine VAS.

Antwort2

Der virtuelle Adressraum ist eine Einschränkung der Speichergröße, die ein Programm adressieren kann.

Dies wird an der äußeren Grenze durch den Stil der Zeiger eingeschränkt - ein reiner 32-Bit-Zeiger kann theoretisch 4 GB virtuellen Speicherplatz adressieren. Die tatsächliche Grenze hängt vom Design des Betriebssystems ab, da es einen erheblichen Teil des Adressraums nutzt.nebender Benutzerbereich.

Unter Win32 ist die Standardeinstellung, 2 GB virtuellen Adressraum als Benutzerspeicherplatz zuzulassen.

Ein 64bit Zeiger kann weitaus mehr adressieren, in der Praxis sind typischerweise 48bit erlaubt und es gibt viele Details aufdiese Superuser-Antwort.

Theoretisch könnte jemand einen physischen Computer mit ausreichend RAM bauen, sodass die 2 GB Benutzerspeicher direkt dem physischen Speicher zugeordnet werden könnten (wofür wahrscheinlich mindestens 3 GB physischer Speicher erforderlich wären), sodass Sie 32-Bit-Prozesse hätten, bei denen der virtuelle Speicher nicht sehr virtuell wäre.

Antwort3

Der virtuelle Adressraum ist das, was der Prozess sieht. Ihre E-Mail befindet sich beispielsweise in einem Posteingang, der beispielsweise 25 GB groß ist. Das ist Ihr virtueller Adressraum.

Virtueller Adressraum ist dadurch zu unterscheiden, dass nicht jeder virtuelle Adressraum einemphysischAdressraum. Angenommen, Sie haben 20 E-Mail-Benutzer mit 25 GB Posteingangsspeicherplatz. Aber Sie haben nur 100 GB Speicherplatz auf Ihrem Server. Nun, Sie können alte E-Mails nehmen und archivieren und nur die neuesten auf Ihrem Server behalten, da die Leute normalerweise nur die neuesten E-Mails abrufen.

Das Archivieren von E-Mails vom Server auf beispielsweise einem Bandlaufwerk ist vergleichbar mit dem Auslagern von Teilen des RAM auf die Festplatte. Wenn jemand alte E-Mails abrufen möchte, „lagern“ Sie die alten E-Mails einfach vom Band zurück auf Ihren Server. Der E-Mail-Benutzer wird den Unterschied nie bemerken.

Auf die gleiche Weise hat jeder Prozess auf Ihrer MaschineXvirtueller Adressraum, auch wenn Ihnen möglicherweise weniger als X * number of processesphysischer Speicher zur Verfügung steht.

Virtueller Speicher ist genau das. Virtueller Adressraum. Aber virtueller Speicher ist nur der virtuelle Adressraum, den Sie verwenden.

verwandte Informationen