Netzwerk-Grundlagen – Rechenzentrumsnetze im Umbruch, Teil 3 Die grundsätzliche Funktionsweise der Virtualisierung im Überblick
Die Hersteller von Virtualisierungssoftware verdeutlichen die Funktionsweise ihrer Produkte meist mit kleinen Bildchen virtueller Maschinchen. Doch dies ist fundamentaler Unsinn und verdeckt problematische Stellen des Themas Virtualisierung. Aus didaktischer Perspektive ist es viel günstiger, sich dem Thema über eine Prozesssicht zu nähern. Nur so lässt sich alles verständlich erklären.
Anbieter zum Thema
Betriebssysteme haben sich über mehrere Jahrzehnte entwickelt. Dadurch haben auch an und für sich gleiche oder ähnliche Dinge unterschiedliche Namen bekommen. Für meine Erläuterungen verwende ich an dieser Stelle daher eine abstrakte Nomenklatur. Sie werden verstehen, was ich meine, auch wenn einzelne Punkte in Ihrem Betriebssystem anders heißen.
Beginnen wir also mit der Bauweise eines konventionellen Betriebssystems, siehe Abbildung 1. Wir sehen die Abstraktion grundsätzlicher Funktionen eines Betriebssystems, die bei allen realen Betriebssystemen von Windows über Unix bis hin zu Großrechner-Betriebssystemen ähnlich heißen und vergleichbar funktionieren. Unten liegt die Hardware, die hier durch einen Prozessor, einen seitenorientierten Speicher, einen Massenspeicher und einen Host Bus Adapter für die Kommunikation vertreten ist. Diese beiden Sorten Speicher haben sich historisch entwickelt. In jedem Prozessor gibt es Register und elektronisch implementiertes RAM. Diese Speichertypen sind zwar von ihrer Größe her stark begrenzt, aber dafür extrem schnell. In jedem Rechner gibt es darüber hinaus Massenspeichersysteme wie Festplatten. Diese sind historisch auf magnetischer Basis realisiert und dementsprechend langsamer, dafür aber wesentlich billiger.
Speicherprozesse
Diese beiden Speichertypen werden durch die so genannte Seitenspeicherarchitektur verbunden. Eine laufende Anwendung benötigt zu einem Zeitpunkt nur einen relativ geringen Teil ihres Gesamt-Speichervolumens. Dieser kleine Teil wird im RAM bereitgestellt, die Adressierung kann durch die Register geschehen. Der Rest des Speicherbereiches kann auf der Festplatte bleiben. Während die Anwendung läuft, ändert sich der kleine aktive Teil laufend. Also müssen Daten von der Festplatte in das RAM nachgeladen werden. Es hat sich in diesem Zusammenhang eingebürgert, von Seiten zu sprechen, die einen zusammenhängenden kleinen Speicherbereich repräsentieren. Diese Seiten müssen also laufend nach den Anforderungen der Anwendung ersetzt werden. Je reibungsloser das funktioniert, desto schneller kann die Anwendung laufen, bei einer ungeschickten Strategie müsste die Applikation warten. Also ist die Qualität der so genannten Seitenersetzungsstrategie (engl.: Paging) von zentraler Bedeutung. Natürlich sind auch die Größe des RAMs und die Qualität des Massenspeichermediums entscheidend.
Sie könnten jetzt sagen, dass das doch eigentlich jeder weiß. Aber ich habe leider gelernt, dass dem nicht so ist. Grade der Speicherzugriff ist aber ein wesentlicher Stolperstein für die Virtualisierung, sodass dies für weitere Erläuterungen klar sein muss.
Viele (nicht alle) Betriebssysteme verwenden einen Hardware Abstraction Layer (HAL). Dieser abstrahiert den Befehlssatz und man kann das Betriebssystem auf einem weiten Bereich von Systemen laufen lassen. Allerdings kann es hier vorkommen, dass ein Prozessor bestimmte wünschenswerte Eigenschaften bietet, die jedoch vom HAL verdeckt werden.
Anwendungsausführung
Eine Anwendung ist grundsätzlich erst einmal ein Stück ausführbarer Code, der irgendwo auf dem Massenspeicher steht. So würde sie nicht laufen können. In dem Moment, wo man eine Anwendung startet, wird für sie eine so genannte Laufzeitumgebung geschaffen. Diese besteht aus einem oder mehreren anwendungsorientierten Prozessen, die den ausführbaren Code repräsentieren, einer Zuordnung von Seiten, die für den Start der Anwendung sinnvoll sind und einer Startbelegung für die Register. Das alles läuft immer noch nicht, ist aber eine sehr wesentliche Vorbereitung.
Normalerweise wird ein einzelner Prozessor zu einem multitaskingfähigen System organisiert. Das bedeutet, dass er scheinbar mehrere Dinge gleichzeitig verrichten kann. In Wahrheit kann er zu einer Zeit aber nur eine Aufgabe erledigen, was sich erst bei den Multi-Core-Systemen ändert, dazu gleich mehr.
Scheduler
Hier kommt der Scheduler ins Spiel. Der Scheduler erzeugt auf einem Prozessor ein System mit mehreren so genannten Elementarprozessen, die abwechselnd vom Prozessor bearbeitet werden können. Diese Anzahl ist endlich, normalerweise einige Dutzend. Es kann immer nur einen so genannten aktuellen Elementarprozess geben, der dann auch tatsächlich läuft. Der Scheduler arbeitet nach einer so genannte Scheduling-Strategie, davon gibt es Unmengen, für die Zwecke dieser Darstellung reicht Round Robin: jeder der Elementarprozesse kommt dabei für eine kurze Zeit an die Reihe, entweder bis seine Zeit abgelaufen ist oder bis ein Unterbrechungsereignis passiert.
Ein typisches Unterbrechungsereignis wäre eine Ein- oder Ausgabe. Kommt der aktuell laufende Elementarprozess an eine Stelle, an der er z.B. eine Eingabe wartet, wird er sofort stillgelegt und der nächste Elementarprozess ist dran. Man kann ihn in dieser Umgebung nicht solange warten lassen, bis die Eingabe tatsächlich erfolgt ist, das dauert zu lange. Er kommt erst dann wieder an die Reihe, wenn er nach Round Robin dran ist. Ist für die Eingabe dann z.B. immer noch kein Wert da, wird er sofort wieder schlafen gelegt.
In jedem Betriebssystem gibt es auf dieser Ebene zwei verschiedene Arten von Elementarprozessen, die einander abwechseln müssen:
- Anwendungsunterstützende Elementarprozesse
- System (unterstützende) Elementarprozesse
weiter mit: Die Elementarprozesse im Detail
Artikelfiles und Artikellinks
Link: Übersicht aller Grundlagenbeiträge von Dr. Kauffels
Link: Video "Netzwerk-Technologien der nächsten Jahre"
Link: ComConsult Study.TV
Link: ComConsult-Report "Konsolidierung im Rechenzentrum"
Link: ComConsult-Report "100G und 100G Ethernet: Anwendungen, Technik, Standards, Produkte"
Link: ComConsult-Report "Aktuelle Netzwerkstandards in der Analyse"
Link: ComConsult-Kongress "Rechenzentrum Infrastruktur-Redesign Forum 2010"
(ID:2045771)