next up previous contents
Next: Echtzeit-Scheduler mit Prioritätsanpassung Up: Steuerung durch einen normalen Previous: Normaler Scheduler

Echtzeit-Scheduler

   figure547
Abbildung: Echtzeit-Scheduler, tex2html_wrap_inline3508

Wenn man den Scheduletakt tex2html_wrap_inline3476 im Bereich des Taktes der Steuerung oder kleiner wählt, bekommt man einen Echtzeit-Scheduler. Man wählt dann z.B. einen Scheduletakt von 1500 Hz oder 2000 Hz. Nach Möglichkeit sollte vermieden werden, daß der Hardwaretakt ein Vielfaches des Scheduletaktes ist, da sonst Interferenzerscheinungen die Steuerung erheblich stören können, z.B. wenn sich die Interrupts der Hardware dauernd mit dem Scheduler überschneiden.

Wenn beim Echtzeit-Scheduler ein anderer Prozeß zum Laufen kommt, ist die Zeitspanne bis zum nächsten Prozeßwechsel wesentlich kürzer, da tex2html_wrap_inline3476 viel kleiner ist, z.B. 10ms beim normalen Scheduler und 0,5ms beim Echtzeitscheduler. Dies bewirkt, daß die Zeit ohne Steuerimpulse im Mittel geringer ist.

In Abbildung gif wird der Vorteil des Schlafens deutlich. Obwohl die maximale Zeit ohne Steuerimpulse in der zweiten Zeitreihe erheblich kürzer ist, bekommen die anderen Prozesse dort sogar mehr Rechenzeit (9 Zeiteinheiten im Vergleich zu 8 Einheiten in der ersten Zeitreihe). Wenn der Steuerprozeß schläft verteilt sich in diesem Fall die Rechenzeit der anderen Prozesse besser, da im Falle des Nichtschlafens zur Rechenzeit des Steuerprozesses auch die Zeit gezählt wird, in der er eigentlich nichts rechnet, sondern nur Rechenzeit beim Warten auf neue Daten verbraucht.

Insgesamt erreicht man schon eine wesentliche Verbesserung der Steuerung. Die maximale Totzeit ist, wie oben beschrieben, immer noch tex2html_wrap_inline3504 . Da der Scheduletakt tex2html_wrap_inline3476 wesentlich kleiner ist, wird die maximale Zeit ohne Steuerimpulse, die für die Pendelsteuerung äußerst relevant ist, reduziert. Falls aber mehrere Prozesse zur Laufzeit anstehen, besteht trotzdem noch ein Problem von zu langen Totzeiten ohne Steuerimpulsen, denn der Wert von x kann bei mehreren lauffähigen Prozessen immer noch zu hoch sein.



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