next up previous contents
Next: Bewertung Up: Scheduling-Verfahren Previous: Mischformen   Inhalt


Prozesse und Threads

Aus Sicht der Scheduling-Algorithmen bestehen nur wenige Unterschiede zwischen Threads und Prozessen. Zum einen kann man bei Threads von deutlich geringeren Umschaltzeiten ausgehen. Dies gilt besonders, wenn der Kontextwechsel von der Hardware des Prozessors unterstützt wird. Da in der Analyse von Scheduling-Verfahren aber immer davon ausgegangen wird, daß kein Overhead für das Umschalten zwischen Prozessen oder Threads auftritt, ändert das die theoretische Betrachtung nicht. Diese Annahme gilt jedoch nur für geeignete mehrfädige Prozessoren.

Der zweite Unterschied ist, daß Threadwechsel bei geeigneter Hardwareunterstützung durch mehrfädige Prozessoren Latenzen verdecken können. Das bedeutet, daß die kurzen Latenzzeiten, die bei Speicherzugriffen oder Sprüngen entstehen, von anderen Threads genutzt werden können. In einem normalen System mit einem Standardprozessor oder -mikrocontroller wären diese Prozessorzyklen verloren.

Dadurch wird der Scheduler etwas komplexer, da er zusätzlich die Latenzen in betracht ziehen muß. Prinzipiell gibt es mehrere Möglichkeiten, die Latenzzeiten zu überbrücken. Zum einen kann man den Thread mit der zweithöchsten Priorität ausführen, was die Abarbeitung der Echtzeitthreads beschleunigt. Man könnte aber auch Threads ohne Echtzeitbedingungen auswählen, so daß sich die Worst-Case-Laufzeiten nicht von einem Prozessor unterscheiden, der nicht mehrfädig ausgelegt ist.

Die Laufzeit von Echtzeit-Threads wird während des Systementwurfs ausgezählt. Da sich dieses Auszählen immer auf einen einzelnen Thread bezieht, müssen die Latenzen mitgezählt werden. Das bedeutet, daß auch der Scheduler dem Thread die Latenzen in Rechnung stellen muß, auch wenn der während dieser Zeit nicht rechnen kann und die Zyklen sogar von einem anderen Thread genutzt werden können.


next up previous contents
Next: Bewertung Up: Scheduling-Verfahren Previous: Mischformen   Inhalt
Alexander Schulz
2000-06-18