Hi,
Die CPU-Leistung wird dagegen dynamisch, also nach Bedarf verteilt. Ja, du kannst alle Kerne der VM zuteilen, dann kann das Gastsystem (von einem kleinen Overhead abgesehen) die volle CPU-Leistung nutzen. Brauchen beide (Host und Gast) viel Rechenleistung, dann wird aufgeteilt, ähnlich wie bei konkurrierenden Anwendungen unter einem OS.
Warum kann man diese dynamische Aufteilung nicht auch mit dem RAM realisieren, das wäre doch viel klüger?
das wäre schon elegant, aber dann müsste das Gastsystem "wissen", dass es in einer VM läuft und den momentan nicht benötigten Speicher abtreten soll. Mit anderen Worten: Die Speicherverwaltung des Gastsystems müsste anders funktionieren, als wenn es auf einer eigenen physischen Maschine läuft, wo eine bestimmte Menge RAM "einfach da ist".
Aber genau das möchte man ja nicht. Das Gastsystem soll die perfekte Illusion haben, es liefe exklusiv auf einer Maschine, und das Hostsystem soll so wenig Einfluss wie möglich auf das Gastsystem haben, sondern ihm nur die (virtuelle) Hardware zur Verfügung stellen.
Bei der CPU geht diese dynamische Zuteilung, weil der Mechanismus im Scheduler heutiger Multitasking-Systeme sowieso enthalten ist: Wenn gerade kein Prozess nach Rechenleistung schreit, versetzen sie sogar die CPU für Sekundenbruchteile in einen HALT-Zustand, bis wieder Bedarf da ist. Das wird übrigens mit dem Pseudo-Prozess Idle (oder Leerlaufprozess) repräsentiert.
Was das für einen Einfluss hat, sieht man sehr deutlich, wenn man mal ein Uralt-System in einer VM laufen lässt, das kein Multitasking unterstützt und auch kein CPU-Halt. Zum Beispiel ein gutes altes MS DOS. Dann wird man feststellen, dass es erstens nur einen CPU-Kern tatsächlich nutzt (es kennt nichts anderes), und dieser Kern die ganze Zeit 100% ausgelastet ist, weil DOS bei Untätigkeit "aktiv wartet", also in einer unproduktiven Warteschleife hängt.
So long,
Martin
Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
- (frei übersetzt nach Douglas Adams)