Erstens: Die Zuweisung von RAM unterliegt immer der endgültigen Kontrolle des Host-Betriebssystems.
Darüber hinaus kommt es darauf an.
Mit einem einfachen Hypervisor teilen Sie dem Hypervisor lediglich mit, wie viel RAM jede VM erhält. Dieser Betrag wird vom verfügbaren RAM auf Ihrem Hostsystem abgezogen, wenn die VM gestartet wird und vom Hypervisor "in Verwendung" ist, solange die VM läuft. Das in der VM ausgeführte Betriebssystem funktioniert wie immer, um den Prozessen und den Betriebssystemverwendungen RAM zuzuweisen. Der alte Microsoft "Virtual PC", der in Windows 7 häufig für den "XP-Modus" verwendet wurde, funktioniert auf diese Weise. VirtualBox tut das auch. Wenn Sie in beiden Fällen eine VM für 1 GB RAM konfigurieren und starten, hat Ihr Host plötzlich 1 GB weniger RAM "verfügbar". Es ist normalerweise nicht sehr effizient beim RAM, aber es ist einfach zu implementieren.
Bei einem komplexeren Hypervisor ist der Betrag, den Sie der VM zuweisen, lediglich eine Obergrenze. Das Gastbetriebssystem sieht so viel RAM als "total" an, aber hinter den Kulissen könnten einige oder sogar die meisten davon, was der Gast für RAM hält, für den Host virtuell sein. Dies gilt insbesondere für das, was Windows als "freies" oder "nullloses" RAM im Gast bezeichnet - da es keinen interessanten Inhalt hat, ist es nicht erforderlich, es irgendwo zu speichern. Aber selbst RAM, das der Gast als "in Verwendung" sieht, kann im Host virtuell sein, der Inhalt ist in einer Auslagerungsdatei oder einer zugeordneten Datei.
Das Gastbetriebssystem verarbeitet den Arbeitsspeicher weiterhin wie immer. Wenn sich jedoch das Gastbetriebssystem auf einen Teil des noch nicht vorhandenen Arbeitsspeichers bezieht, kann der Hypervisor dem Gast mehr aktuellen Arbeitsspeicher zuweisen. (Mit anderen Worten, eine Speicherreferenz, die scheinbar ohne Seitenfehler im Gastsystem zu funktionieren scheint, kann einen Seitenfehler im Host verursachen.) Innerhalb des insgesamt verfügbaren Arbeitsspeichers und der konfigurierten Grenzwerte passt der Hypervisor die Größe des Arbeitsspeichers an, der "in" ist. das Gastbetriebssystem versucht, die Seitenfehlerrate im Host niedrig zu halten.
Dies wird allgemein als "Thin Provisioning" bezeichnet. Die Implementierung im Hypervisor ist komplexer, führt jedoch zu einer effizienteren Verwendung des Arbeitsspeichers des Hosts.