組み込みソフト開発のしきいを下げる"リアルタイムOS"のすべて
4. リアルタイムOSはどの機能が強化されているか?
一般に,リアルタイムOSは基本的なOSの機能のうち,
1)時間管理強化のための「スケジューラ」と「ディスパッチャ」
2)プロセスを協調して動作させるための「プロセス間通信」と「共有・排他制御」が強化されていると言えるでしょう.
●ハード・リアルタイムとソフト・リアルタイム
ハード・リアルタイムとソフト・リアルタイムについて,ここでは次のように定義したいと思います.
1)ハード・リアルタイム
プロセスに要求する実行終了時刻が厳密に決められているリアルタイム・システムである.実行開始から終了までの要求時間が非常に短く,高精度が要求される.
2)ソフト・リアルタイム
目標とする実行終了時刻が,ハード・リアルタイムほど厳密ではないシステムである.通常の場合,実行開始から終了までの要求時間は比較的長く,必ずしもワースト・ケースの処理完了時刻に精度を要求されない.
ハード・リアルタイムの適用例としては,自動車のエンジン点火制御,MPEGのデコード(DVDプレーヤ),医療機器,航空機管制,INS(慣性航法装置)などがあげられます.また,ソフト・リアルタイムの適用例としては,携帯電話やPDAなどがあります.
●リアルタイムOSの要件
では,リアルタイムOSをシステムに適用するための要件は,何を考えればよいでしょうか.ひと言で言えば,「応答時間,処理時間の予測可能性」だと思います.
リアルタイムOS上でリアルタイム・プロセスが実行される場合には,少なくとも次の三つのことについて考慮されていなければならないでしょう.
1) 最悪どのくらいの時刻までに各処理が間に合えばいいか?
リアルタイム・システムの場合,ミッション・クリティカルな作業が数多く存在するので,スケジューリングとディスパッチの機能は非常に重要です.
2) 1)を実行するためには,各処理をどのくらいの時間
で実行できるようにすればよいか? あらかじめ各処理時間が見積もられていることが,この予測を立てるときに重要です.
3)もし間に合わなかった場合は次の処理はどうするか?
処理を停止するのか,次の処理を続けるのかなど,処理がうまくいかなかった場合の対策をいかに取るかを常に考えておかなければなりません.システム全体が破局を迎えないしくみにする必要があります.