組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
5. 組み込み用リアルタイムOS適用の五つの条件
組み込みシステムを考える場合,特に家電製品に代表されるようなシステムの場合,すべての資源は増設不可能な形で提供されるので,使用できるメモリや組み込まれている機器に制限がある場合がほとんどです.
このような組み込みシステムに要求されるリアルタイムOSの要件として,筆者は次のように考えます.
1) リアルタイム・プロセスを精密に制御できる
「リアルタイム・システム」を制御するのですから,この条件が実現されていなければ,リアルタイムOSとは言えません.当然,先に述べた要件は含んでいるものとします.
2) リアルタイムOSの実行サイズが必要最低限である
メモリ容量に制限がある場合が多いので,できるだけ実行サイズが小さいことが求められます.カーネルやアプリケーションのサイズはコストやデザインの関係でパソコンやワークステーションよりもメモリに余裕がないシステムがほとんどです.したがって,OSが対応する機能も極限まで減らされることになります.
管理する資源が少ない場合,スケジューラとRAMのメモリ管理,入出力だけで十分ということもありえます.ただし,構築する組み込みシステムの要件によって大きく左右されるので,個々のシステムに搭載されている機能については一概にいえません.しかし,OSの機能がモジュール化され,比較的拡張や縮小がしやすい設計になっていれば,あとの仕様変更にも柔軟に対応できます.
3) 資源保護は必ずしも必要がない
リアルタイム・システムによっては,どのような処理が行われるのかがわかっている場合があります.この場合,複数のタスクが資源を共有するための保護機能を不要としてもよいケースがあります.例えば,事前にどのような処理を行うかがわかっているタスクの保護にかける時間と資源があるなら,それを削ってでも応答時間を短くしたほうが良いという考えかたの場合などです.
4) I/O管理がモジュール化されている
組み込みシステムでは,多くは同じ周辺機器を複数のシステムで使う必要がありません.その場合,複数のタスクで機器を共有するための機能は不要です.そればかりか,その機能を持っていたがためにリアルタイム性能を低下させる原因になる場合もあります.I/Oの管理が不要なわけではなく,特定のタスクが特定のI/Oを占有して使うことが多いので,そのような使われかたに特化した機能を持っている場合が多くなります.
5) OSの起動が速く,動きが機敏である
せっかく精密なスケジューリングができる機能があっても,OSそれ自身の機能の応答性が悪ければ意味がありません.リアルタイムOS自身の性能の良さも要求されることになります.