2.3.4.3 Quasi-gleichzeitige Ausführung mehrerer Prozesse

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 32: Zeile 32:
<loop_area type="task">'''Aufgabe 1'''<br />
<loop_area type="task">'''Aufgabe 1'''<br />
Du erinnerst dich an die folgende Abbildung:
Du erinnerst dich an die folgende Abbildung:
<p><loop_figure title="" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:vnrgesamt2.jpg|650px]]</loop_figure></p>
<p><loop_figure title="Abbildung zu Aufgabe 1" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:vnrgesamt2.jpg|650px]]</loop_figure></p>
Wie integrierst du den Hardware-Taktgeber in dieses Bild?
Wie integrierst du den Hardware-Taktgeber in dieses Bild?
</loop_area>
</loop_area>

Version vom 20. September 2013, 18:09 Uhr

Die quasi-gleichzeitige Ausführung mehrerer Prozesse stellt einen besonderen Meilenstein dar zwischen dem bisher erarbeiteten Bild der Ausführung mehrerer Prozesse im Hauptspeicher und dem, was ein normaler Anwender heute von seinem PC oder Laptop gewohnt ist.

Zunächst sei an den bisher erarbeiteten technischen Stand erinnert:

Auf einer (hier betrachteten) ganz einfachen CPU kann immer nur genau ein Prozess zur Zeit aktiv sein. Eine tatsächlich parallele Ausführung mehrerer Prozesse ist deshalb technisch bedingt nicht möglich.

Es kann aber zu einer "quasi-gleichzeitigen" Ausführung mehrerer Prozesse kommen, indem sich die betreffenden Prozesse in kleinen Zeiteinheiten auf der CPU abwechseln. Sind die "kleinen Zeiteinheiten" hierbei genügend klein gewählt, so erhält ein Anwender vor dem System den Eindruck, als ob alle Prozesse parallel ablaufen.

Anmerkung

Du kennst genau dieses Verhalten von deiner täglichen Arbeit mit deinem PC/Laptop. Browser, E-Mail-Client, etc. scheinen alle parallel zu laufen.

Es ergeben sich einige offene Fragen:

  1. Wer oder Was bestimmt, wann es Zeit ist, einen Prozess zu unterbrechen und die CPU einem anderen Prozess zuzusprechen?
  2. Wer oder Was bestimmt, welcher Prozess als nächstes die CPU bekommt?

Frage 2 lässt sich ganz einfach mit folgender Forderung beantworten:

Hinweis

Wir brauchen ein Betriebssystem!
Und eine der Aufgaben dieses Betriebssystems wird die Auswahl des jeweils nächsten Prozesses für die CPU sein.

Aber bei Frage 1 wird es schwieriger. Hier kann das Betriebssystem nicht helfen, denn das Betriebssystem ist Software, während seiner Ausführung also nichts weiter als ein Prozess.

Hinweis

Wichtige Erkenntnis:

Dies ist eine sehr wichtige Erkenntnis für das Zusammenpiel von Hardware, Betriebssystem und sonstiger Software! Ein Betriebssystem ist nichts anderes als Software. Sobald das Betriebsssystem in den Hauptspeicher geladen und seine Ausführung gestartet wird, ist das Betriebssystem ein Prozess. Und der Betriebssystem-Prozess wechselt sich fortan mit den weiteren Prozessen im Hauptspeicher auf der CPU ab.

Wenn jetzt Prozess A auf der CPU läuft, dann muss es ein Hardware-gesteuertes Ereignis geben, welches dafür sorgt, dass der laufende Prozess A unterbrochen wird und das Betriebssystem (als weiterer Prozess) die CPU übernimmt.

Zu diesem Zweck gibt es einen Hardware-Taktgeber, der in sehr kleinen zeitlichen Abständen einen Interrupt auslöst. Bei der Abarbeitung dieses Interrupts wird der laufende Prozess A unterbrochen, und die zugehörige Interruptbehandlungsroutine ausgeführt.

Die Interruptbehandlungsroutine kann nun Bestandteil des Betriebssystems sein, wodurch der Interrupt letztlich dafür sorgt, dass das Betriebssystem zur Ausführung auf der CPU kommt. Anschließend kann das Betriebssystem den nächsten Prozess auswählen und die CPU wieder abgeben (siehe Frage 2).

Aufgabe

Aufgabe 1

Du erinnerst dich an die folgende Abbildung:

Vnrgesamt2.jpg

Wie integrierst du den Hardware-Taktgeber in dieses Bild?

Aufgabe

Aufgabe 2

Nach dem Start eines Rechners werden insgesamt drei Prozesse gestartet:

  1. Prozess BS: Das Betriebssystem.
  2. Prozess X: Eine beliebige Anwendung.
  3. Prozess Y: Eine weitere beliebige Anwendung.


Prozess BS beginnt ab Speicherstelle 0 im Hauptspeicher, damit wird das Betriebssystem zuerst gestartet.

Erläutere was passiert, wenn Prozess BS sich nun um die quasi-gleichzeitige Ausführung aller Prozesse auf der CPU kümmert. In welcher Weise wechseln sich BS, X und Y auf der CPU ab? Wodurch wird dieser Wechsel veranlasst?




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