Herunterladen Inhalt Inhalt Diese Seite drucken

Siemens RMOS3 Bedienungsanleitung Seite 84

Echtzeit-betriebssystem rmos3 rmos3 v3.50 benutzerhandbuch
Inhaltsverzeichnis

Werbung

Betriebssystem-Eigenschaften von RMOS3
8.2 Multiprocessing unter RMOS3
Round-Robin-Algorithmus
Beim Round-Robin-Algorithmus wird jeder Task ein Zeitintervall, oder Zeitquantum, zugeteilt,
nach dessen Ablauf spätestens die nächste gleichpriorisierte Task RECHNEND wird. Falls
die Task sich vorher beendet (in den Zustand DORMANT überführt wird) oder über einen
SVC blockiert (in den Zustand WARTEND überführt wird), wird sofort die nächste Task in
den Zustand RECHNEND gesetzt.
Bei jedem Übergang vom Zustand BEREIT in den Zustand RECHNEND wird der Task ein
volles Zeitquantum gegeben, der Round-Robin-Counter wird wieder mit dem spezifischen
Zeitintervall initialisiert. Die Größe des Zeitintervalls ist für jede Task einzeln konfigurierbar.
Dadurch kann für Tasks mit gleicher Priorität ein Timesharing der CPU erreicht werden.
Die Zeitverwaltung wird nur von Prozessorkern 0 durchgeführt. Der Interrupt des Timer-
Bausteins wird also nur auf Prozessorkern 0 ausgelöst. Prozessorkern 0 erhöht mit jedem
Interrupt die interne Zeit X_ABS_TIME und führt abgelaufene Zeitaufträge (Timeouts) aus.
Bei jedem Timer-Interrupt auf Prozessorkern 0 wird durch diesen über den APIC auch ein
Timer-Interrupt auf den anderen Prozessorkernen ausgelöst. Die anderen Prozessorkerne
überprüfen nur den Round-Robin-Counter und durchlaufen beim Ablauf des Round-Robin-
Counters den Scheduler.
Hinweis
Eine Task, die, z.B. durch den SVC
einhängen" anstößt, wird dabei selbst geschedult. Dabei kann es u.U. zu einem vorzeitigen
Task-Wechsel (< Round Robin-Zeitintervall) kommen.
Wenn die zuvor geschedulte Task wieder RECHNEND wird, läuft sie mit einem neuen,
vollen Round Robin-Zeitintervall los.
Round Robin bei RMOS3 heißt nicht "Realisierung einer Zeitscheibe", sondern "Task soll
nicht länger als das Round-Robin-Zeitintervall RECHNEND sein"!
Taskscheduling anhalten
Der SVC
durch den Scheduler auf allen Cores. Treibertasks (wie z.B. VGA-Task) sind von dieser
Sperre ausgenommen.
84
sperrt alle lokalen und globalen Tasks für die Ausführung
RmDisableScheduler
, die RMOS3-interne Routine "Task in RTQ
RmStartTask
Bedienhandbuch, 07/2012, A5E03692290-01
RMOS3 V3.50 Benutzerhandbuch

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis