2.3.2.1 Mehrere Prozesse gleichzeitig im Speicher

[gesichtete Version][gesichtete Version]
(Die Seite wurde neu angelegt: „In der Überschrift wird ausdrücklich der Begriff "Prozesse" und nicht "Programme" verwendet. <loop_area type="task">'''Aufgabe 1'''<br /> Was war doch gleich…“)
 
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
Beim nächsten Einschalten des Rechners kann wieder neu entscheiden werden, welches Programm zum Einsatz kommt.
Beim nächsten Einschalten des Rechners kann wieder neu entscheiden werden, welches Programm zum Einsatz kommt.


<loop_area type="annotation">Natürlich wirkt dieses ständige Ein- und Ausschalten des Rechners </loop_area>
<loop_area type="annotation">Natürlich wirkt dieses ständige Ein- und Ausschalten des Rechners befremdlich für dich als erfahrenen Anwender (bzw. Anwenderin). Schließlich arbeitest du jeden Tag gleichzeitig mir mehreren Programmen (eigentlich: Prozessen!) auf deinem PC oder Notebook. Aber mit dem bis jetzt erarbeiteten Bild eines Rechners ist es noch nicht möglich, dieses zu tun. Wir nähern uns aber diesem Ziel, es dauert nicht mehr lange. Halte durch! </loop_area>


Diesers eine Programm kann ausgeführt werden (und damit zum Prozess werden). Weitere Programme oder Prozesse, die sich zur selben Zeit im Hauptspeicher befinden sind bislang nicht vorgesehen.
Der Ablauf wird nun derart erweitert, dass mehrere Programme geladen und ausgeführt werden können:


Aber genau das soll sich nun ändern. Schließlich startet jeder Anwender tagtäglich auf seinem PC mehrere Programme und arbeitet damit.
# Starte den Rechner.
# 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.
# Treffe für jedes Programm die nötigen Vorarbeiten für seine spätere Ausführung. (Dadurch werden nacheinander alle Programme zu Prozessen!)
# Starte in Speicherzelle 0 mit der Ausführung des ersten Befehls des ersten Prozesses.
# Führe entsprechend des Ablaufs alle weiteren Befehle dieses ersten Prozesses aus.
# Sobald die Ausführung des ersten Prozesses beendet ist (HALT-Befehl), wird die CPU auf die Ausführung des zweiten Prozesses vorbereitet.
# Starte mit dem ersten Befehl des zweiten Prozesses.
# usw.


Das folgende Video erläutert, warum ein Compiler beim Übersetzen von Quelltext in Maschinencode immer davon ausgeht, dass das Programm später ab Speicherstelle Null im Hauptspeicher steht, und warum es mit Hilfe des [[Basisregister|Basisregisters]] möglich ist, trotzdem mehrere Programme zur gleichen Zeit im Hauptspeicher unterzubringen.
<loop_area type="annotation">Merkst du was? Es sind jetzt mehrere Prozesse im Speicher, aber erst wenn der erste Prozess beendet wurde, startet der zweite Prozess. Und nach dem Ende des zweiten Prozesses startet der dritte Prozess. Usw.</loop_area>
 
Das folgende Video geht näher auf diese Situation ein und erläutert den Ablauf insbesondere im Zusammenspiel mit dem [[Basisregister]].


<p><loop_media type="video" title="Platzhalter-Video" description="Bald erscheint hier der geplante Inhalt..." copyright="CC-BY" index=true show_copyright=true>{{#ev:youtube|kSQJPIWzd5U}}</loop_media></p>
<p><loop_media type="video" title="Platzhalter-Video" description="Bald erscheint hier der geplante Inhalt..." copyright="CC-BY" index=true show_copyright=true>{{#ev:youtube|kSQJPIWzd5U}}</loop_media></p>
Die hier skizzierte Arbeitsweise stammt noch von den Großrechnern aus den Anfängen des Computerzeitalters.
<br />
<br />
<hr />
<hr />
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
</sub>
</sub>

Version vom 5. September 2013, 10:11 Uhr

In der Überschrift wird ausdrücklich der Begriff "Prozesse" und nicht "Programme" verwendet.

Aufgabe

Aufgabe 1

Was war doch gleich der Unterschied zwischen einem Programm und einem Prozess?

An dieser Stelle sei noch einmal darauf hingewiesen, dass das bisher erarbeitete Bild eines Rechners nur einen Prozess zur Zeit im Hauptspeicher zulässt. Der Ablauf gestaltet sich wie folgt:

  1. Starte den Rechner.
  2. Lade ein bestimmtes Programm in den Hauptspeicher.
  3. Bereite die CPU zur Ausführung vor (dadurch wird das Programm zum Prozess)
  4. Starte in Speicherzelle 0 mit der Ausführung des ersten Befehls.
  5. Führe entsprechend des Ablaufs alle weiteren Befehle aus.
  6. Sobald die Ausführung des Prozesses beendet ist (HALT-Befehl), kann der Rechner ausgeschaltet werden.

Beim nächsten Einschalten des Rechners kann wieder neu entscheiden werden, welches Programm zum Einsatz kommt.

Anmerkung

Natürlich wirkt dieses ständige Ein- und Ausschalten des Rechners befremdlich für dich als erfahrenen Anwender (bzw. Anwenderin). Schließlich arbeitest du jeden Tag gleichzeitig mir mehreren Programmen (eigentlich: Prozessen!) auf deinem PC oder Notebook. Aber mit dem bis jetzt erarbeiteten Bild eines Rechners ist es noch nicht möglich, dieses zu tun. Wir nähern uns aber diesem Ziel, es dauert nicht mehr lange. Halte durch!

Der 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.
Anmerkung

Merkst du was? Es sind jetzt mehrere Prozesse im Speicher, aber erst wenn der erste Prozess beendet wurde, startet der zweite Prozess. Und nach dem Ende des zweiten Prozesses startet der dritte Prozess. Usw.

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

Die hier skizzierte Arbeitsweise stammt noch von den Großrechnern aus den Anfängen des Computerzeitalters.



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png