Es gibt zwei Arten der Arbeitsspeichervirtualisierung: softwarebasierte und hardwaregestützte Arbeitsspeichervirtualisierung.
Aufgrund der mit der Virtualisierung einhergehenden zusätzlichen Ebene der Arbeitsspeicherzuordnung kann mit ESXi eine effektive Arbeitsspeicherverwaltung für alle virtuellen Maschinen umgesetzt werden. Ein Teil des physischen Arbeitsspeichers einer virtuellen Maschine könnte dabei gemeinsam genutzten Seiten, nicht zugeordneten Seiten oder ausgelagerten Seiten zugeordnet werden.
Ein Host führt die virtuelle Arbeitsspeicherverwaltung aus, ohne dass das Gastbetriebssystem darüber informiert ist und ohne Einfluss auf das eigene Subsystem der Arbeitsspeicherverwaltung im Gastbetriebssystem.
Der VMM der einzelnen virtuellen Maschinen übernimmt die Zuordnung der physischen Arbeitsspeicherseiten des Gastbetriebssystems zu den physischen Arbeitsspeicherseiten der zugrunde liegenden Maschine. (VMware bezeichnet die physischen Seiten des zugrunde liegenden Hosts als Maschinenseiten und die physischen Seiten des Gastbetriebssystems als physische Seiten.)
Jede virtuelle Maschine verfügt über einen zusammenhängenden, nullbasierten, adressierbaren physischen Arbeitsspeicher. Der zugrunde liegende Maschinenarbeitsspeicher des von den virtuellen Maschinen verwendeten Servers ist nicht unbedingt zusammenhängend.
Sowohl für die softwarebasierte als auch für die hardwaregestützte Arbeitsspeichervirtualisierung wird die Zuordnung von virtuellen zu physischen Gastadressen vom Gastbetriebssystem verwaltet. Der Hypervisor ist nur für das Übersetzen der physischen Gastadressen in Maschinenadressen zuständig. Die softwarebasierte Arbeitsspeichervirtualisierung kombiniert die virtuellen Adressen mit Maschinenadressen des Gasts in der Software und speichert sie in den Schattenseitentabellen, die vom Hypervisor verwaltet werden. Die hardwaregestützte Arbeitsspeichervirtualisierung generiert mithilfe der Hardwarekomponente die kombinierten Zuordnungen mit den Seitentabellen des Gasts und den vom Hypervisor verwalteten verschachtelten Seitentabellen.
Das Diagramm veranschaulicht die Implementierung der Arbeitsspeichervirtualisierung bei ESXi.
- Durch die Kästchen werden Seiten dargestellt; die Pfeile veranschaulichen die verschiedenen Arbeitsspeicherzuordnungen.
- Die Pfeile vom virtuellen Arbeitsspeicher des Gasts zum physischen Arbeitsspeicher des Gasts zeigen die durch die Seitentabellen des Gastbetriebssystems gepflegte Zuordnung. (Die Zuordnung vom virtuellen Arbeitsspeicher zum linearen Arbeitsspeicher für Prozessoren mit x86-Architektur ist nicht dargestellt).
- Die Pfeile vom physischen Arbeitsspeicher des Gasts zum Maschinenarbeitsspeicher stellen die durch den VMM gepflegte Zuordnung dar.
- Die gestrichelten Pfeile zeigen die Zuordnung vom virtuellen Arbeitsspeicher des Gasts zum Maschinenarbeitsspeicher in den Schattenseitentabellen, die ebenfalls durch den VMM gepflegt werden. Der zugrunde liegende Prozessor, der die virtuelle Maschine ausführt, verwendet die Zuordnungen in der Schattenseitentabelle.