Netzwerk-Grundlagen – Rechenzentrumsnetze im Umbruch, Teil 3

Die grundsätzliche Funktionsweise der Virtualisierung im Überblick

29.06.2010 | Autor / Redakteur: Dr. Franz-Joachim Kauffels / Andreas Donner

Multiprozessor-Systeme sind die ideale Basis für virtuelle Systeme
Multiprozessor-Systeme sind die ideale Basis für virtuelle Systeme

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.

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

 

Weiterbildung für IT-Profis

Inhalt des Artikels:

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 2045771 / RZ Basics)