Mehrere Prozesse gleichzeitig im Speicher

Zunächst sei an das bisher erarbeitete Gesamtbild der Programmausführung erinnert. Dieser Ablauf wird nun derart erweitert, dass mehrere Programme geladen und ausgeführt werden können:

  1. Starte den Rechner.
  2. Lade nacheinander mehrere Programme in den Hauptspeicher. Die Befehle des ersten Programms werden zusammenhängend ab Speicherzelle 0 abgelegt, die Befehle der weiteren Programme jeweils zusammenhängend in freien Speicherbereichen danach.
  3. Treffe für jedes Programm die nötigen Vorarbeiten für seine spätere Ausführung. (Dadurch werden nacheinander alle Programme zu Prozessen!)
  4. Starte in Speicherzelle 0 mit der Ausführung des ersten Befehls des ersten Prozesses.
  5. Führe entsprechend des Ablaufs alle weiteren Befehle dieses ersten Prozesses aus.
  6. Sobald die Ausführung des ersten Prozesses beendet ist (HALT-Befehl), wird die CPU auf die Ausführung des zweiten Prozesses vorbereitet.
  7. Starte mit dem ersten Befehl des zweiten Prozesses.
  8. usw.


Aufgabe 1

Aufgabe
Welche Situation gilt?

Welche Situation wird hier beschrieben:

  1. Es werden mehrere Prozesse im Speicher gehalten und alle Prozesse laufen parallel ab.

    oder

  2. Es werden mehrere Prozesse im Speicher gehalten, aber erst wenn der erste Prozess beendet wurde, startet der zweite Prozess. Und nach dem Ende des zweiten Prozesses startet der dritte Prozess. Usw.


Zusammenspiel mit dem Basisregister

Das folgende Video geht näher auf diese Situation ein und erläutert den Ablauf insbesondere im Zusammenspiel mit dem Basisregister.

Video.png
Video

Die hier skizzierte Arbeitsweise stammt noch von den Großrechnern aus den Anfängen des Computerzeitalters. Damals war es üblich, beim Start eines Rechners eine Reihe von Programmen (und Daten!) zum Beispiel über Lochkarten einlesen zu lassen. Die Programme liefen dann sequentiell ab, d.h. erst nach Beendigung des ersten Prozesses, startete der zweite Prozess, usw.

Anmerkung

Mit deiner eigenen Erfahrung kannst du abschätzen, wie sehr sich doch das Zusammenspiel von Hardware und Software von den Anfängen bis heute verändert hat.


Anordnung mehrerer Programme im Hauptspeicher

Das folgende Video erläutert, wie mehrere Programme mit ihren Daten im Hauptspeicher angeordnet sind.

Video.png
Video


Zusammenhängende Speicherbelegung

Die hier gezeigte Speicheraufteilung verdeutlicht, dass ein Programm und seine Daten zusammenhängend im Hauptspeicher abgelegt werden. Dieser Umstand vereinfacht viele Dinge, auf die in den nächsten Seiten noch näher eingegangen wird.

Der Grund für diese zusammenhängende Unterbringung im Hauptspeicher ist ganz simpel: es ist die einfachste Variante, bei der auftretende Probleme (auch diese werden in Kürze aufgezeigt) ohne großen Aufwand gelöst werden können.

Anmerkung
Bedenke:

Die hier gezeigten Dinge stammen aus der Zeit der Großrechner. PCs und Laptops wie wir sie heute kennen waren damals noch sehr weit entfernt. Die Entwicklung startete mit diesen einfachen Verfahren, steigerte ihre Komplexität aber im Laufe der Jahrzehnte. Die heute üblichen Verfahren der Speicherbelegung werden später in diesem Modul noch erläutert.


Nötige Vorarbeiten

Man betrachte noch einmal den oben auf dieser Seite beschriebenen Punkt:
"Treffe für jedes Programm die nötigen Vorarbeiten für seine spätere Ausführung."

Genaugenommen ist dieser Punkt etwas schwammig formuliert, denn:

Frage

WER oder WAS trifft für jedes Programm die nötigen Vorarbeiten?

Spätestens an dieser Stelle zeigt sich erstmals die Notwendigkeit einer "Verwaltungseinheit", und aus dieser Notwendigkeit heraus entwickelten sich im Laufe der Jahre verschiedene Betriebssysteme.


Notwendigkeit einer Verwaltungseinheit

Wichtig

Wir brauchen ein Betriebssystem!

Und eine der Aufgaben dieses Betriebssystems wird die Verwaltung mehrerer Prozesse sein.