next up previous contents
Next: Echtzeit-Scheduler Up: Steuerung durch einen normalen Previous: Steuerung durch einen normalen

Normaler Scheduler

   figure536
Abbildung: Normaler Scheduler, tex2html_wrap_inline3490

In Abbildung gif wird das Verhalten bei einem normalen Scheduler mit einem Takt von meistens 100 Hz dargestellt, d.h. tex2html_wrap_inline3492 . Der Takt der Steuerung tex2html_wrap_inline3494 ist hier also wesentlich kleiner, etwa um den Faktor 10, als der Scheduletakt. Man sieht deutlich, daß der Steuerprozeß alle Steuerimpulse bedienen kann, also nur Taktimpulse mit Steuerbefehl auftreten, solange kein anderer Prozeß lauffähig ist.

Wenn aber ein anderer Prozeß an die Reihe kommt, ab Zeitpunkt d in der Zeitachse, ist mindestens für die Zeitspanne tex2html_wrap_inline3476 keine Steuerung möglich. Wegen der Schedulerstrategie, allen Prozessen möglichst gleich viel Rechenzeit zu geben, kann es aber vorkommen, daß andere Prozesse tex2html_wrap_inline3500 Takte zum Rechnen bekommen, wenn mehrere Prozesse lauffähig sind oder eine höhere Priorität haben. Dies ist besonders dann ein Problem, wenn der Steuerprozeß nicht schläft, da er so unnötig Rechenzeit verschwendet, die eigentlich andere Prozesse nutzen könnten. Falls sich der Steuerprozeß schlafenlegt, kann in der Zeit vom Ende der Befehlsberechnung bis zum nächsten Prozeßwechsel schon ein anderer Prozeß an die Reihe kommen. Dies bedeutet aber auch, daß dann nur alle tex2html_wrap_inline3476 eine Steuerung erfolgen kann. Zusammengefaßt kann die Totzeit tex2html_wrap_inline3504 lang sein, d.h. diese Zeitspanne kann zwischen zwei Steuerimpulsen vergehen. Das Pendel bewegt sich in dieser Zeit vollkommen ungeregelt. In der Praxis wurden Ausfälle der Steuerung bis zu 800ms erreicht. Ein normaler Scheduler ist also für die Echtzeitregelung nicht brauchbar.



Marius Heuler
Tue Jan 7 12:11:50 MET 1997