Betriebssystem-Eigenschaften von RMOS3
8.2 Multiprocessing unter RMOS3
8.2.8
Taskpriorität
Dringlichkeitsstufe
Die Priorität einer Task gibt die Dringlichkeitsstufe wieder, mit der RMOS3 eine Task
abarbeitet. Die Priorität einer Task wird bei der Task–Definition festgelegt, kann aber später
jederzeit geändert werden, um auf die Systemanforderungen einzugehen.
8.2.8.1
Prioritätsänderung durch SVCs
RmStartTask, RmQueueStartTask, RmSetTaskPriority.
SVCs, die eine konfigurierte Priorität beeinflussen können, sind
RmQueueStartTask
Eine zeitweilige Prioritätsänderung zur Beschleunigung der Task–Ausführung ist möglich,
um auf Situationen zu reagieren, in denen eine Task schneller als ursprünglich vorgesehen
abgearbeitet werden muss. Mit
Abschluss der Behandlung die anfängliche Priorität wiederhergestellt (durch erneuten Aufruf
von
8.2.8.2
Prioritätsänderung nach Ablauf eines Zeitintervalls
RmSetTaskPriority, RmRestartTask
RMOS3 bietet einen Mechanismus zur Änderung der momentanen Priorität einer Task,
wenn nicht innerhalb eines festgelegten Zeitintervalls ein
RmRestartTask
dieser Einrichtung kann Gebrauch gemacht werden, wenn die Systembelastung über einen
weiten Bereich variiert, und eine zyklische Task, normalerweise mit niedriger Priorität
innerhalb eines bestimmten Zeitabschnitts ausgeführt werden muss. RMOS3 wacht darüber,
ob die Task innerhalb dieser Zeitperiode zum Abschluss gekommen ist; wenn nicht, erhöht
RMOS3 die Task–Priorität. Das Zeitintervall, die Prioritätserhöhung und eine obere Grenze
der Priorität werden bei der Kreierung der Task (
festgelegt. Das Zeitintervall muss kleiner als die tatsächliche Task–Ausführungszeit sein.
Bei jedem mittels
wird das festgelegte Zeitintervall von neuem heruntergezählt und wieder bei der
ursprünglichen Priorität begonnen. Sobald die Zeitperiode verstrichen ist, wird die Priorität
erhöht und das Zeitintervall neu geladen und mit dem Herunterzählen wieder angefangen.
Dieser Vorgang wird nur dann beendet, wenn die Task
oder die maximale Priorität erreicht. Die ursprüngliche Task–Priorität kann auch durch
RmSetTaskPriority
88
und
RmSetTaskPriority
).
RmSetTaskPriority
(Task beenden und nach Zeitintervall neu starten) abgesetzt wurde. Von
RmStartTask
wiederhergestellt werden.
.
wird die Priorität erst erhöht und nach
RmSetTaskPriority
RmCreateTaskEx
,
oder
RmQueueStartTask
,
RmStartTask
(Task beenden) oder
RmEndTask
) im Task–TCD–Block
ausgelösten Taskstart
RmRestartTask
oder
RmEndTask
RmRestartTask
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
aufruft