オリジナルOS「MicrOS」の設計と実装(4) ―― リアルタイム性の確保
Interface誌2007年5月号に付属したV850マイコン基板で動作するオリジナルOS「MicrOS(マイクロス)」が登場した.今回は,MicrOSにおいてリアルタイム性を確保するための割り込み処理部分について見ていく. (編集部)
1.リアルタイム・システムとは何か
● リアルタイムであるということ
組み込みシステムの分野では,「リアルタイムOS」(RTOS,Realtime Operating System)という言葉が一般的に使われています.そして,リアルタイムOSを使ってさまざまなシステムが作られています.
しかし,ここで間違えてはいけないのは「リアルタイムOSだからといって,必ずしもリアルタイム・システムを制御できるOSではない」ということです.また,逆にリアルタイムOSといわれないOSはリアルタイム・システムを制御できないかというと,そうでもないのです.
クリティカルな機能を決められた時間内に処理するように構成されたシステム,というのがリアルタイム・システムの一般的な定義です.この時間的条件を必ず満足しなければならないシステムをハード・リアルタイム・システム,もし守れなくても致命的にはならないようなシステムはソフト・リアルタイム・システムといわれます.
● 時間的な制約が存在する
問題は,この時間的な制約です.この点に関しては次のように解釈すべきでしょう.
例えば,相手が人間である場合は,数秒間以上応答がないとイライラするかもしれません.もし,制御対象が携帯電話やPHSのような通信機器であったとすると,通話中は数ms単位でパケットのやり取りが行われるので,これに間に合うような処理をしなければなりません.UART経由で制御する機器があったとすれば,ボーレートが関係します.9,600bpsであれば1バイトの転送は約1msなので,やりとりされるコマンドの処理がこの条件を満たしていなければならないことになります.USB制御の機器であればその性能を引き出すために,もっと厳しい条件での処理が要求されます.
例えば,DMA(Direct Memory Access)のような機構をUARTに適用すれば,1文字ごとに発生する割り込みを「一塊のデータ単位ごと」にすることができます.厳しい条件が要求される機器については,専用のハードウェアによってある処理の一部を代行してくれるので,リアルタイム制御が可能となります.
このように時間的制約は,制御の対象となる相手(機器)によって異なります.それも組み込み機器の動作が速ければ速いほど,より高い応答性能が要求されます.
非常に高速な応答が要求される場合,OSではなくハードウェアの側で問題を解決した方がよいときもあります.そのような場合,OSは専用化され,場合によってはCPU自身も専用化されます.
2.リアルタイム・システムを制御するOS
それでは,リアルタイムOSとはいかなるOSをいうのでしょうか.リアルタイム性が優れているといわれるRTOS「μITRON」で,リアルタイムのための機構とはどのようなものか調べてみました.
● 優先度ベース・スケジューリング
優先度ベース・スケジューリングとは,常に優先度の高いタスクが実行されるように制御することです(図1).同じ優先度であればFCFS(First Come First Service)で制御します.
優先順位が1~4のタスクA~Fがあった場合,一番優先順位の高いタスクAが実行される.タスクAの次は優先順位2のタスクBかタスクCが実行されるが,タスクBが最初に実行可能になったので,タスクB→タスクCの順に実行される.