Suchen

Netzwerk-Grundlagen – Rechenzentrumsnetze im Umbruch, Teil 3

Die grundsätzliche Funktionsweise der Virtualisierung im Überblick

Seite: 2/5

Firmen zum Thema

Die Elementarprozesse im Detail

Jede Ein- und Ausgabe auf oder von einem externen Element (Speicher, Netzwerk, …) benötigt Rechenleistung. Diese wird von den System-unterstützenden Elementarprozessen erbracht. Der Scheduler oder auch das Paging-Verfahren sowie viele andere, hier nicht genannte Funktionen zur Systemsteuerung- und Verwaltung, sind System-unterstützende Elementarprozesse.

Sie benötigen einen nennenswerten Anteil an der Prozessorleistung. Nur der „Rest“ steht dann tatsächlich für die Anwendungen zur Verfügung.

Bildergalerie
Bildergalerie mit 7 Bildern

Möchte man eine Anwendung laufen lassen, so muss also ihre Laufzeitumgebung an einen oder mehrere anwendungsunterstützende Elementarprozesse gebunden werden. Das macht der so genannte Dispatcher.

Wie wir wissen, arbeitet jeder Prozess immer nur sehr kurz. Der Sinn der Laufzeitumgebung ist es also vor allem, den jeweiligen Zwischenstatus der Anwendung bei einem Prozesswechsel festzuhalten. Dies geschieht normalerweise in den assoziierten Registern. Das sind auch bei einem normalen System virtuelle Register, denn in dem Moment , wo der aktuelle anwendungsunterstützende Elementarprozess aufhören muss, übernehmen sie den Zustand der tatsächlichen Register im Prozessor. Kann der anwendungsunterstützende Prozess dann weitermachen, werden die Registerinhalte aus der Laufzeitumgebung auf den physikalischen Prozessor übertragen.

Fassen wir zusammen:

  • Eine Anwendung muss in eine Laufzeitumgebung überführt werden
  • Die Laufzeitumgebung muss an einen oder mehrere anwendungsunterstützende Elementarprozesse gebunden werden
  • Der anwendungsunterstützende Elementarprozess kann immer nur kurz laufen, weil der Scheduler viele Elementarprozesse verwalten muss

Dadurch gibt es mindestens folgende Sorten von Prozessen in einer Betriebssystem-Umgebung:

  • Anwendungsprozesse, die eine Anwendung im Rahmen einer Laufzeitumgebung unterstützen
  • Anwendungsunterstützende Elementarprozesse, die die Anwendungsprozesse unterstützen
  • Systemunterstützende Elementarprozesse, die alle Systemfunktionen unterstützen, die nicht Anwendungsprozesse sind.

Dieses Prozessmodell ist didaktisch vereinfacht, weil es innerhalb der oben genannten Sorten von Prozessen noch jeweils Abstufungen gibt, die aber nicht weiter zum Verständnis beitragen.

Ganz wesentlich in diesem Zusammenhang ist dann noch die elementare Prozesskommunikation, weil sich die Elementarprozesse durchaus etwas mitzuteilen haben können. Nehmen wir ein Beispiel: die Eingabe.

Ein anwendungsunterstützender Elementarprozess ist an einer Stelle angekommen, wo er gerne eine Eingabe hätte. Wir wissen, dass er darauf nicht warten darf. Außerdem wäre das auch zwecklos, der bei einer Eingabe interessierende Wert muss von einem systemunterstützenden Elementarprozess geholt werden, denn der anwendungsunterstützende Elementarprozess hat keinerlei Zugriff auf die physikalischen Medien. Also benötigen wir eine Kommunikation zwischen diesen beiden Prozessen. Bevor er stillgelegt wird, formuliert der anwendungsunterstützende Elementarprozess einen Auftrag an den nächsten I/O-Prozess. Der I/O-Prozess sieht – nachdem man ihn geweckt hat – nach, ob für ihn ein I/O-Auftrag da ist und führt diesen aus. Wird der beauftragende anwendungsunterstützende Elementarprozess dann aufgeweckt, holt er sich als erstes den Wert ab und kann dann damit sofort weiterarbeiten.

Dieses Beispiel zeigt die elementare Interprozesskommunikation, IPC. Dies ist natürlich im Laufe der Jahrzehnte wesentlich erweitert worden. Die wichtigste Erweiterung dabei ist sicherlich, dass nicht nur anwendungsunterstützende Elementarprozesse und systemunterstützende Elementarprozesse kommunizieren können, sondern auch diese Prozessarten untereinander.

Bleibt jetzt nur noch die Frage zu klären, inwieweit die Einführung mehrerer Prozessoren oder einer Multi-Core-Architektur dem Betriebssystem hilft. Bis vor wenigen Jahren hatte ein Prozessor nur einen einzigen Rechenkern. Die Multi-Core Architektur besagt, dass ein physikalischer Prozessorchip mehrere vollständige und an und für sich autonome Rechenkerne besitzt; siehe Abbildung 2.

weiter mit: Prozessabläufe in einer Multi-Core-Architektur

Artikelfiles und Artikellinks

(ID:2045771)