Virtualisierung ohne Verluste: Architekturen im Vergleich

Im Kernel-Mode wird der Hauptspeicher verwaltet und der Zugriff auf die I/O-Ports der Devices geregelt. Programme laufen im User-Mode. Versuche, auf Speicher zuzugreifen, der nicht für die Anwendung freigegeben ist, oder I/O-Ports der Devices zu programmieren, werden mit einem Fehler quittiert, der Exception (Ausnahme) genannt wird.

Genau hier setzt die Vollvirtualisierung an. Eine Exception führt nicht automatisch zum Abbruch eines Anwendungsprogramms, sondern zu einem Sprung an eine definierte Stelle im Kernel-Mode, so dass das Betriebssystem entscheiden kann, was nun zu tun ist.

Bei einer Vollvirtualisierung wird ein Betriebssystem in einer Umgebung gestartet, die sich im User-Mode befindet. Typischerweise beginnt ein Betriebssystem nach dem Starten mit der Aufteilung des Speichers mit entsprechend privilegierten Befehlen. Hier wird dann eine Exception generiert, die in der Virtualisierungssoftware landet.

Geringe Performance bei Virtualisierung

Klassische Vollvirtualisierung führt allerdings zu einem nicht unerheblichen Performanceverlust in den virtuellen Maschinen. Die Emulation von privilegierten Befehlen, Speicherverwaltung und I/O bedingt immer einen Taskswitch im Prozessor, der auch dazu führt, dass der Cache invalidiert wird und damit in Gastmaschine zunächst in den langsameren Hauptspeicher geschrieben werden muss. Danach muss der Cache im Hypervisor der Virtualisierungssoftware neu aus dem Hauptspeicher gefüllt werden.

Dies ist der Grund, warum Prozessorhersteller wie AMD und Intel heute damit beginnen, eine prozessorseitige Unterstützung von Virtualisierung zu implementieren.

Themenseiten: AMD, Intel, SWsoft, Servers, Storage, Storage & Server, VMware

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Virtualisierung ohne Verluste: Architekturen im Vergleich

Kommentar hinzufügen

Kommentare sind bei diesem Artikel deaktiviert.