-
rot_rdq
irot_rdq
-
ER rot_rdq ( PRI tskpri );
ER irot_rdq ( PRI tskpri );
|
MOV A, #tskpri
CALL !!_rot_rdq
MOV A, #tskpri
CALL !!_irot_rdq
|
tskpriで指定された優先度に対応したレディ・キューの先頭タスクを最後尾につなぎかえ,タスクの実行順序を明示的に変更します。
備考1 本サービス・コールでは,回転要求のキューイングが行われません。このため,該当優先度に対応したレディ・キューにタスクが1つもキューイングされていなかった場合には,何も処理は行わず,エラーとしても扱いません。
備考2 本サービス・コールを周期ハンドラなどから一定周期で発行することにより,ラウンドロビン・スケジューリングを実現することができます。
備考3 レディ・キューは,優先度をキーとしたハッシュ・テーブルであり,実行可能な状態(READY状態,またはRUNNING状態)へと遷移したタスクがFIFO順でキューイングされます。
このため,スケジューラは,起動された際にレディ・キューの優先度高位から“タスクの検出処理”を実行し,キューイングされているタスクを検出した際には,該当優先度の先頭タスクにCPUの利用権を与えることにより,RI78V4の
スケジューリング方式を実現しています。