next up previous contents
Next: Normaler Scheduler Up: Regelung des Pendelsystems Previous: Ansteuerung des Pendels

Steuerung durch einen normalen Prozeß

In den Abbildungen gif bis gif wird das Scheduling bei der Steuerung des Pendels dargestellt. Von der Schnittstellenkarte kommen die Interruptanforderungen, wie in Kap. gif beschrieben, in einem bestimmten Takt. Das Steuerprogramm muß zwischen den Takten jeweils die neuen Steuerbefehle berechnen und an die Hardware übergeben. Dies muß rechtzeitig vor dem Eintreffen des nächsten Taktimpulses erfolgen. Nach der Übergabe des berechneten Steuerbefehls an den Gerätetreiber hat das Programm grundsätzlich zwei Möglichkeiten:

a) Es kann in einer Endlosschleife warten, bis wieder neue Daten von der Hardware über den Gerätetreiber gelesen werden können. Dies hat den Vorteil, daß der Steuerprozeß bis zum nächsten Prozeßwechsel sicher weiterrechnen und dabei bei jedem Takt einen Steuerimpuls berechnen kann. Der Nachteil davon ist, daß sinnlos Rechenzeit verschwendet wird, da in der Zeit, in der das Programm auf neue Daten wartet, kein anderer Prozeß zum Zuge kommen kann. Daraus wird ein gravierendes Problem, wenn noch andere Prozesse lauffähig sind, was bei einem Multitasking/Multiusersystem den Normalfall darstellt. Da der Scheduler die Rechenzeit auf die verschiedenen Prozesse möglichst gleichmäßig verteilt, kommt beim nächsten Taskwechsel ein anderer Prozeß an die Reihe. In der Rechenzeit von anderen Prozessen können natürlich vom Steuerprozeß keine Steuerimpulse berechnet und an die Hardware geschickt werden.

b) Das Programm kann sich schlafen legen und wird erst wieder aufgeweckt, wenn neue Daten von der Hardware über den Gerätetreiber ankommen. Dazu weckt die Interruptfunktion das Programm auf. Dies hat den Vorteil, daß das Programm nur Rechenzeit verwendet, wenn es wirklich etwas zu rechnen hat. Es wird also keine Rechenzeit in Warteschleifen verschwendet. Nun gibt es aber auch hier einen gravierenden Nachteil. Wenn ein Prozeß wieder aufgeweckt wird, bekommt er nicht sofort Rechenzeit zugeteilt, sondern frühestens zum nächsten Prozeßwechselzeitpunkt. Nur wenn gerade kein anderer Prozeß läuft bekommt er sofort Rechenzeit. Falls aber beim Schlafenlegen des Steuerprozesses ein anderer Prozeß lauffähig war, bekommt dieser sofort die Rechenzeit und der Steuerprozeß kann erst wieder beim nächsten Takt des Schedulers Rechenzeit bekommen.

Wie lange nun der Steuerprozeß nicht rechnen kann, das Pendel also ohne Steuerimpulse bleibt, hängt vor allem vom Scheduletakt tex2html_wrap_inline3476 ab. Falls zum Prozeßwechselzeitpunkt mehrere Prozesse lauffähig sind, hängt es auch noch von den Auswahlkriterien des Schedulers ab, welchen Prozeß er als nächstes aktiviert.




next up previous contents
Next: Normaler Scheduler Up: Regelung des Pendelsystems Previous: Ansteuerung des Pendels

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