Ich weiß, dass virtueller Speicher eine Auslagerungsdatei ist, die der Computer verwendet, um einen Teil des Arbeitsspeichers auf der Festplatte für einen laufenden Prozess zu speichern. Wie unterschiedlich ist der virtuelle Adressraum? Ist es der RAM oder die Festplatte oder beides?
3
Antworten:
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 Betriebssystemkern ist dann für die Zuordnung von Adressen in den vas zum physischen Speicher (RAM oder System-Auslagerungsdateien) verantwortlich.
Bei diesem Entwurf sind sich die Programme selbst nicht der Ressourcen und der realen Adressen bewusst und können so arbeiten, als ob sie den gesamten Systemspeicher oder zumindest den maximalen Speicher, den ein einzelner Prozess verwenden kann, für sich alleine hätten.
Kurz gesagt, ein Programm arbeitet mit VAS, und das Betriebssystem verwaltet die Zuordnung von VAS zu realem Speicher, sodass dies für das ausgeführte Programm nicht sichtbar ist. Das laufende Programm sieht nur seinen VAS.
quelle
Der virtuelle Adressraum ist eine Beschrä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 Raum adressieren. Die tatsächliche Grenze hängt vom Betriebssystemdesign ab, da neben dem Benutzerbereich ein erheblicher Teil des Adressraums verwendet wird.
Unter Win32 ist die Standardeinstellung, einen virtuellen Adressraum von 2 GB als Benutzerraum zuzulassen.
Ein 64-Bit-Zeiger kann weit mehr adressieren, in der Praxis sind normalerweise 48 Bit zulässig, und es gibt viele Details zu dieser Superuser-Antwort .
Theoretisch könnte jemand einen physischen Computer mit genügend RAM bauen, so dass 2 GB Speicherplatz direkt dem physischen Speicher zugeordnet werden können (wahrscheinlich mindestens 3 GB physischen Speicher), sodass 32-Bit-Prozesse vorhanden sind, bei denen der virtuelle Speicher nicht sehr virtuell ist.
quelle
Der Prozess sieht den virtuellen Adressraum. Beispielsweise befindet sich Ihre E-Mail in einem Posteingang mit einer Größe von beispielsweise 25 GB. Das ist Ihr virtueller Adressraum.
Virtueller Adressraum soll die Tatsache kennzeichnen, dass nicht jeder virtuelle Adressraum einem physischen Adressraum entspricht. Nehmen wir an, Sie haben 20 E-Mail-Benutzer mit 25 GB Posteingang. Sie haben jedoch nur 100 GB Festplattenspeicher 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 einem Bandlaufwerk ähnelt dem Auslagern von RAM-Teilen auf eine Festplatte durch den Computer. Wenn sich jemand alte E-Mails ansieht, "paginieren" Sie einfach die alte E-Mail vom Band zurück auf Ihren Server. Der E-Mail-Benutzer wird den Unterschied nie erfahren.
Auf die gleiche Weise verfügt jeder Prozess auf Ihrem Computer über einen virtuellen X- Adressraum, auch wenn möglicherweise weniger
X * number of processes
physischer Speicher vorhanden ist.Virtueller Speicher ist genau das. Virtueller Adressraum. Der virtuelle Speicher ist jedoch nur der von Ihnen verwendete virtuelle Adressraum.
quelle