Prozessortechnik Die Auswirkungen von Virtualisierung und Multicore
Im Embedded-Markt werden heute zwei Begriffe als besonders „heiß“ gehandelt: Virtualisierung und Multicore-Technologie. Beide haben verschiedene Bedeutungen, werden aber häufig als Synonyme verwendet, was verwirrend sein kann. Welche Unterschiede und Gemeinsamkeiten lassen sich dabei feststellen und wie sind die Auswirkungen auf die Applikationen?
Anbieter zum Thema
Multicore-Prozessoren sind CPUs, die mehrere Prozessorkerne in einem Gehäuse vereinen. Diese müssen sich nicht einmal auf demselben Die befinden. Manche davon unterstützen Virtualisierung. Es gibt verschiedene Technologien, die „Virtualisierung“ im Namen tragen. Sie unterscheiden sich auf vielerlei Art und Weise – was sie virtualisieren, und wie. Virtualisierung bedeutet, dass Teile der Hardware, die ein Betriebssystem „erlebt“ entweder nicht existieren oder mit einem anderen Betriebssystem geteilt werden. Da ein Betriebssystem normalerweise davon ausgeht, alleiniger „Besitzer“ der Hardware zu sein, kann dies zu Komplikationen führen.
Wenn wir prozessvirtualisierende Maschinen, wie z.B. die Prozessmodelle von Windows, Linux und anderen ignorieren, und annehmen, dass das virtualisierte System dieselbe Prozessorarchitektur hat wie der Host, verbleiben zwei wichtige Gruppen:
- Hosted Virtual Machines (HVMs) emulieren vollständige Maschinen und laufen als Applikation eines Nutzers. Meist wird ein Großteil der Applikation in den Kernel-Space verschoben, um bessere Performance zu erzielen. Typisch dafür sind Microsoft VirtualPC oder einige VMWare-Produkte.
- True Hypervisors starten als erste, dann die eigentlichen virtuellen Maschinen als Gastsystem oder Domain, abhängig von der bevorzugten Terminologie.
True Hypervisors

In einem hypervisor-basierten System (Bild 1) wird der Hypervisor auch als VMM (Virtual Machine Manager) bezeichnet. Vorteil dieses Aufbaus ist, dass keine Änderungen am auszuführenden Betriebssystem erforderlich sind, und dies mit geringem Overhead einhergeht. Andererseits benötigt dieses Vorgehen Unterstützung durch die vorliegende Hardware.
Paravirtualisierung

Paravirtualisierung ist ein Zwischenschritt zwischen HVMs und echter Virtualisierung. Der Vorteil der Paravirtualisierung ist die Tatsache, dass nur geringer Hardwaresupport benötigt wird. Andererseits setzt es damit Treiber voraus, die Paravirtualisierung oder Patches für das auszuführende Betriebssystem unterstützen, die wiederum nicht immer vorhandene Kenntnisse über die auszuführenden Betriebssysteme erfordern. Das Prinzip ähnelt der normalen Virtualisierung (Bild 2).
Hosted Virtual Machine

Die verwendete Software scannt das auszuführende System und ersetzt Instruktionen, die höhere Rechte erfordern, durch Funktionsaufrufe, die diese emulieren. Darüber hinaus zeigen sie dem auszuführenden System einen vollständigen PC mit all seinen normalen Devices (Bild 3). Diese Vorgehensweise hat Vorteile: Normale Nutzer können ohne Administrationsrechte Standardbetriebssysteme installieren und ausführen. Der größte Anteil des Codes wird direkt auf dem Prozessor ausgeführt, so dass vernünftige Performance erreicht wird.
Es gibt auch Nachteile: Emulation kostet Zeit. Folglich ist dies eine gute Lösung für Nutzer, die gleichzeitig zwei Systeme ausführen müssen – ohne kritische Zeitbeschränkungen. Für Anwender mit Echtzeit-Anforderungen ist es eher eine schlechte Lösung: das emulierte System läuft als Anwenderprozess.
Multicore und Virtualisierung
Virtualisierung und Multicore-Prozessoren passen gut zueinander: Virtualisierte Systeme können nahezu komplett über einen oder mehrere eigene CPU-Kern(e) verfügen. Damit gibt es weniger gegenseitige Beeinflussung, und jedes System kann die vorliegende Hardware voll nutzen. Damit dies funktioniert, benötigt die Hardware eine Erweiterung: Von Intel und AMD wurde ein zusätzlicher, höher privilegierter Modus namens „Root Mode“ eingeführt.
Dieser hat weitergehende Rechte als die bekannten Modi wie User- und Kernel-Mode. Diese zusätzliche Schicht kontrolliert die Virtualisierung und erlaubt, dass ein normales Betriebssystem davon nichts mitbekommt. Gleichzeitig erlaubt sie durch die Hardware-Implementierung (Intel-VT bzw. AMD-V) eine effiziente Nutzung aller vorhandenen CPU Kerne.
(ID:241477)