周期ハンドラとは?しゅうきはんどら
周期ハンドラとは、一定周期で起動されるようRTOSに登録しておく処理。システムクロック割込み(タイムティック)を基準に管理され、制御周期やポーリング周期の生成に使われる。非タスクコンテキストで動くため、待ちを伴うサービスコールは呼べないという制約はハンドラ全般と共通する。
最終更新:2026-10-06
この語が出る過去問を解く →背景
制御ソフトは「一定間隔で測って計算して出力する」という周期構造を持つが、これを自前のループとウェイトで作ると、処理時間の変動がそのまま周期のずれとして蓄積する。RTOSが時間管理を引き受け、周期の起点を固定して呼び出す仕組みにすれば、処理時間が多少ぶれても周期は保たれる。複数の周期を同時に扱う構成でも、起動の管理をRTOSに集約できるため、タスク側は自分の周期だけを見ればよくなる。
具体例
μITRON系RTOSでは、1ミリ秒周期でセンサ値を読み、10ミリ秒周期で制御演算を行うといった多重周期構成を、それぞれ周期ハンドラとして登録して実現する。ハンドラ内ではイベントフラグやセマフォでタスクを起こすにとどめ、演算本体はタスク側に置く。
試験での引っ掛け
ティック周期より細かい周期は作れず、起動タイミングのばらつき(ジッタ)もティック粒度に縛られる。より精密な周期が要るならハードウェアタイマの割込みを直接使うことになる。周期ハンドラは「周期の起点が守られる」だけで、実行時間が長ければ次の起動と重なりうる点も設計上の注意になる。
関連用語
出た過去問
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9(IPA)
リアルタイムOSで用いられる、タスクがデッドラインを必ず守るデッドラインスケジューリングでは、周期タスクを図のように次の四つのパラメタr, C, D, T(0<…
正解:タスクX: C=1, D=2/タスクY: C=2, D=4
要点:周期タスクはC/Dの総和が1以下でなければ成立しない
r=0かつD=Tなので各タスクの周期はデッドラインに等しく、CPU使用率はC/Dの和で見積もれる。使用率が1を超える組合せはどう並べてもデッドラインを守れないため除外され、残るのはX:C=1,D=2とY:C=2,D=4の組合せ(1/2+2/4=1)である。実際、優先度の高いXが各周期の先頭で1単位実行し、残りの時間でYが2単位を確保できるので、周期4の中で両方が間に合う。
出典:令和2年度 10月試験 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9(IPA)
リアルタイムOSで用いられる、タスクがデッドラインを必ず守るデッドラインスケジューリングでは、周期タスクを図のように次の四つのパラメタr, C, D, T(0<…
正解:タスクX: C=1, D=2、タスクY: C=2, D=4
要点:周期タスクはC/Dの総和が1以下でなければ成立しない
r=0かつD=Tなので周期とデッドラインが等しく、CPU使用率はC/Dの総和で見積もれる。総和が1を超える組合せはどう並べてもデッドラインを守れないため除外され、残るのはX:C=1,D=2とY:C=2,D=4の組合せ(1/2+2/4=1)だけである。優先度の高いXを各周期の先頭で1単位実行しても、残りの時間でYが周期4の中に2単位を確保できるので成立する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。