【スケジューラとは?】
スケジューラとは、マルチタスクを実現するための基本の機能で
各タスクの現在状態によりタスクへ処理を分岐する機能が基本
機能です。
【スケジューラの機能】
・ 常時実行可能なタスクがあるかをチェックし、もし実行可能な
タスクが無ければ「アイドルループ」として繰り返し同じ処理
を実行する。
・ ACTIVEな実行待ちタスクがあればWAIT中かどうかを確認し、
WAIT中で無ければタスク番号でジャンプテーブルをサーチして
そのタスクに実行を移す。
・ WAIT中の時は、そのWAITの種類によりそれぞれの処理を行う。
まずEVENT WAITの待ちの時には何もしない。
RQST WAIT待ちの時はRQST相手が依然ACTIVE中かを判定し
ACTIVEであれば何もせず、ACTIVEで無ければ、そのタスクを
改めてACTIVEとしたあと、RQSTWAITをEVENT WAITに変更し
て次に移る。
・ タスクに一度実行が移ると、EXITなどのマクロ命令が実行され
ない限りスケジューラには戻らないので、そのタスクが終了する
まで、他タスクを実行することが出来ない。 従って、ひとつの
タスクの実行時間は余り長くしてはならない。
【スケジューラの処理フロー】
スケジューラの流れをフロー図で示すと下図となる。