3.2.11.1.1 Nebenläufigkeit

[unmarkierte Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
=Nebenläufigkeit=
=Nebenläufigkeit=
<p>
Zunächst die Definition.
</p>
<br />
== Definition: Nebenläufigkeit ==
<p>
<loop_index>Nebenläufigkeit</loop_index>
<loop_area type="definition">
<p>
Unter '''Nebenläufigkeit''' versteht man die quasi-parallele Ausführung von Befehlen unterschiedlicher Prozesse oder Threads auf einer CPU.
</p>
</loop_area>
</p>
<p>
Solange nur eine CPU (mit einem Rechenkern) zur Verfügung steht, ist hier von ''quasi-paralleler Ausführung'' die Rede. Erst bei mehreren CPUs oder mehreren Rechenkernen auf einer CPU kann Nebenläufigkeit auch mit ''echt-paralleler Ausführung'' definiert werden.
</p>
<br />
== Definition: Nebenläufige Ausführung ==
<p>
<loop_area type="definition">
<p>
Unter der ''nebenläufigen Ausführung'' mehrerer Prozesse oder Threads auf nur ''einer'' CPU versteht man, dass sich mehrere Prozesse oder Threads bei ihrer Ausführung auf der CPU abwechseln.
</p>
</loop_area>
</p>
<br />
<p>
Es kommt dabei zwangsläufig immer wieder zu [[Vom_Batch-Job_zum_Multitasking#Definition:_Kontextwechsel|Kontextwechseln]] auf der CPU, dies ist eine Folge des [[Scheduling#Definition:_Preemptive_Scheduling|preemptiven Schedulings]].
</p>
<br />
<p>
<loop_area type="important">
<p>
Für das Verständnis der weiteren Kapitel ist es wichtig, sich einmal über den '''Zeitpunkt von Kontextwechseln''' während einer nebenläufigen Ausführung von Prozessen oder Threads Gedanken zu machen. Die folgende Aufgabe gibt dazu Gelegenheit.
</p>
</loop_area>
</p>
<br />
== Aufgabe 1 ==
<p>
<loop_area type="task">
<loop_task title="Wann genau finden Kontextwechsel statt?">
<p>
Wenn zwei Prozesse A und B [[Synchronisation#Definition:_Nebenl.C3.A4ufigkeit|nebenläufig]] ausgeführt werden, ist dann vorherbestimmt, wann genau ein Kontextwechsel zwischen diesen beiden Prozessen erfolgt?
</p>
<p>
Wenn diese beiden Prozesse nach ihrer Terminierung immer wieder neu gestartet und nebenläufig ausgeführt werden, finden die Kontextwechsel dann '''immer an der gleichen Stelle im Maschinencode''' statt?
</p>
<p>
Diskutiere diese Situation in deiner Lerngruppe!
</p>
<p>
Wovon hängt es ganz allgemein ab, wann ein Kontextwechsel erfolgt?<br />
Nenne mindestens drei Bedingungen!
</p>
</loop_task>
</loop_area>
</p>
<br />
<p>
Dass Probleme bei der nebenläufigen Ausführung von Prozessen und Threads auftreten können, und wie diesen entgegnet werden kann, wird auf den folgenden Seiten gezeigt.
</p>
<div class="autoit_do_not_print">
<br />
<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>
</div>

Version vom 6. Februar 2015, 11:23 Uhr

Nebenläufigkeit

Zunächst die Definition.


Definition: Nebenläufigkeit

Definition

Unter Nebenläufigkeit versteht man die quasi-parallele Ausführung von Befehlen unterschiedlicher Prozesse oder Threads auf einer CPU.

Solange nur eine CPU (mit einem Rechenkern) zur Verfügung steht, ist hier von quasi-paralleler Ausführung die Rede. Erst bei mehreren CPUs oder mehreren Rechenkernen auf einer CPU kann Nebenläufigkeit auch mit echt-paralleler Ausführung definiert werden.


Definition: Nebenläufige Ausführung

Definition

Unter der nebenläufigen Ausführung mehrerer Prozesse oder Threads auf nur einer CPU versteht man, dass sich mehrere Prozesse oder Threads bei ihrer Ausführung auf der CPU abwechseln.


Es kommt dabei zwangsläufig immer wieder zu Kontextwechseln auf der CPU, dies ist eine Folge des preemptiven Schedulings.


Wichtig

Für das Verständnis der weiteren Kapitel ist es wichtig, sich einmal über den Zeitpunkt von Kontextwechseln während einer nebenläufigen Ausführung von Prozessen oder Threads Gedanken zu machen. Die folgende Aufgabe gibt dazu Gelegenheit.


Aufgabe 1

Aufgabe

Wenn zwei Prozesse A und B nebenläufig ausgeführt werden, ist dann vorherbestimmt, wann genau ein Kontextwechsel zwischen diesen beiden Prozessen erfolgt?

Wenn diese beiden Prozesse nach ihrer Terminierung immer wieder neu gestartet und nebenläufig ausgeführt werden, finden die Kontextwechsel dann immer an der gleichen Stelle im Maschinencode statt?

Diskutiere diese Situation in deiner Lerngruppe!

Wovon hängt es ganz allgemein ab, wann ein Kontextwechsel erfolgt?
Nenne mindestens drei Bedingungen!


Dass Probleme bei der nebenläufigen Ausführung von Prozessen und Threads auftreten können, und wie diesen entgegnet werden kann, wird auf den folgenden Seiten gezeigt.