Virtualisierung (Prozessortechnik)
Ursprünglich war Virtualisierung reine Software-Sache. Doch für manche Funktionen braucht die Virtualisierungssoftware Hardware-Unterstützung. Ein 64-Bit-Adressraum und Mehrkern-Prozessoren sind bei Virtualisierungslösungen von Vorteil. Denn erst mit einem großen Adressraum und viel Rechenleistung machen mehrere parallel laufende virtuelle Computer Sinn. Sonst ist die Ausführungsgeschwindigkeit zu langsam.
Im Regelfall ist Virtualisierung ein Aufgabenbereich des Prozessors. Doch auch bei der I/O-Virtualisierung ist die Unterstützung von CPU, BIOS und Chipsatz nötig. Dann kann man eine bestimmte PCIe-Komponente direkt an eine virtuelle Maschine durchreichen, sodass sich in der virtuellen Maschine ein Treiber für dieses Gerät installieren lässt. Das ist vor allem bei Grafikkarten interessant.
Hardware-Unterstützung durch den Prozessor
Mit der Virtualisierungsunterstützung durch den Hauptprozessor kann der Hypervisor die Virtualisierung deutlich schneller ausführen. Das wird durch bestimmte Funktionen im Prozessor und im Chipsatz erreicht. Beispielsweise durch Befehlserweiterungen im Hauptprozessor (CPU).
- Intel VT-x (Virtualization Technology for x86): Ermöglicht die Hardware-Virtualisierung auf x86-Architekturen. Unterstützt Funktionen wie Extended Page Tables (EPT) und Unrestricted Guest Mode für eine effizientere Virtualisierung.
- Intel VT-d (Virtualization Technology for Directed I/O): Unterstützt die direkte Zuweisung von I/O-Geräten an virtuelle Maschinen. Reduziert den Overhead für virtuelle Maschinen beim Zugriff auf die Hardware.
- AMD-V: Ermöglicht Hardware-Virtualisierung durch den Prozessor.
- AMD-Vi: Funktionen zur effiziente Virtualisierung und direkten Hardware-Zugriff für virtuelle Maschinen.
In der Regel ist die Hardware-Unterstützung für Virtualisierung in Mittelklasse- und Hochleistungs-CPUs enthalten. Verzichten muss man in der Regel in Low-Cost-CPUs.
Was bringen Intel-VT und AMD-V?
Hinweis: Die folgende Beschreibung ist stark vereinfacht und allgemein gehalten.
Ein Prozessor ist normalerweise darauf ausgelegt nur ein Betriebssystem auszuführen. Wenn ein Computersystem neben einem Host- auch ein Gast-Betriebssystem (virtuelle Maschine) beherbergt, dann muss der Hypervisor den virtuellen Maschinen vorgaukeln, dass sie den Prozessor für sich alleine haben. Aber bei der Befehlsausführung muss man zwischen Host und Gast unterscheiden. Wenn bestimmte Instruktionen auf die gleiche Ressource zugreifen, dann kann es zu Abstürzen und Datenverlust kommen. Schon einfache Instruktionen, wie das Sichern und Schreiben von Statusregistern im Prozessor, können zu Problemen führen.
Um Probleme auszuschließen muss der Code vor der Ausführung auf problematische Instruktionen durchsucht und diese gegebenenfalls ersetzt oder umgeschrieben werden. Für die Überprüfung ist der Hypervisor zuständig. Weil jede einzelne Instruktion überprüft werden muss, kostet das Rechenleistung und die Verwaltung etwas Speicherplatz.
Mit weniger Aufwand funktioniert das mit der Virtualisierungsunterstützung durch den Prozessor. Dadurch wird die Virtualisierung etwas schneller (Geschwindigkeitsvorteil). Das hilft vor allem den „einfachen“ Virtualisierungslösungen. Mit speziellen Virtualisierungsinstruktionen ist das Durchsuchen auf problematische Instruktionen nicht mehr nötig. Trotzdem ist die Virtualisierungsunterstützung keine Rundum-sorglos-Lösung. Ob Instruktionen vom Hypervisor oder vom Prozessor behandelt werden, hängt vom Umfang der Virtualisierungsunterstützung des Prozessors ab. Die Behandlung durch den Prozessor ist auf alle Fälle schneller. Aber prinzipiell ist immer ein Hypervisor nötig, der sich um die Organisation und die aufwendigeren Instruktionen kümmert.
Weitere verwandte Themen:
- Virtualisierung
- Virtuelle Maschine (VM)
- Betriebssystem
- Virtualisierung in der Computertechnik
- Prozessortechnik
Lernen mit Elektronik-Kompendium.de
Noch Fragen?
Bewertung und individuelles Feedback erhalten
Aussprache von englischen Fachbegriffen
Computertechnik-Fibel
Alles was du über Computertechnik wissen musst.
Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.
Computertechnik-Fibel
Alles was du über Computertechnik wissen musst.
Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.
Artikel-Sammlungen zum Thema Computertechnik
Alles was du über Computertechnik wissen solltest.