組み込み向けリアルタイムOSの基礎知識 ―― プログラムの実行およびコンピュータ資源を管理するOSの種類や機能を整理する
4.制御対象の時間制約に合わせて 動作するリアルタイムOS
リアルタイムOSとは,リアルタイム・システムを構築するのに適した特徴や機能を持ったOSのことです注7.リアルタイムとは日本工業規格(JIS)によれば(3),「計算機外部の別の処理と関係を持ちながら,かつ外部の処理によって定められる時間要件に従って計算機の行うデータの処理に関する用語」と定義されています.つまりリアルタイム・システムとは,制御対象の時間制約に合わせて動作可能なシステムであると解釈できます.
時間制約とは,例えばスイッチが押されてから100ms以内に,ある処理が完了しなければならないとか,10ms周期で処理を開始し,そこから5ms以内に完了しなければならないなどといったように,処理がいつ始まりいつ終わる必要があるかという制約のことです.このような制約を満たすための設計や評価を行うには,アプリケーション・ソフトウェアだけでなくOSの処理時間も見積もる必要があります注8.リアルタイムOSは最悪の場合(つまり最も時間がかかる場合)の時間見積もりが可能なように作られています.最悪実行時間データが提供されている場合もあります注9.
注8;現実にはキャッシュ・メモリなど見積もりを難しくする要因があって困難になっている.
注9;動作周波数などある特定条件での評価データしか得られない場合が多いので参考程度.
このようなリアルタイム性を配慮しているという特徴は,OSがどのような順序でプログラムを実行させるのかということと関連しています.多くのリアルタイムOSでは優先度というプログラム処理単位ごとに設定されるパラメータと,起動されたタイミングを元に実行順序を決定しています注10.Windowsなどのパソコン向けOSは,各処理が平均的に実行時間を得ることを目指しています.プログラムの実行順序の決定方法が複雑なため,時間の見積もりを行うことが困難です.そのためリアルタイムOSであるとは考えにくいといえます.
注10;優先度ベース・スケジューリングと呼ばれる方式が採用されることが多い.
● さまざまな組み込みシステム向けOSの例
リアルタイムOSとしてはさまざまな仕様があり,それらを実装,公開,販売するさまざまな会社および団体があります.以下にいくつかの例を示します.
- TOPPERS/JSP注11,TOPPERS/OSEK(TOPPERSプロジェクト)(4)
- NORTi (ミスポ)(5)
- QNX(カナダQNX Software Systems社)(6)
- VxWorks(米国Wind River社)(7)
- LynxOS(米国LynuxWorks社)(9)
注11;2008年5月現在,JSPの後継OSとしてASPカーネルが公開された.
● 特定用途に特化するため機能の部分集合を定義
先ほど組み込みシステム向けOSは目的に特化されると述べましたが,μITRON4.0仕様(10)などのOSの仕様では,さまざまな用途で利用可能なように数多くの機能が規定されています.そうなるとそれらの仕様には,ある用途にとっては必要とされない機能も含まれることになります.そこでOSの仕様によっては,特定用途に必要とされる機能の部分集合を定義しているものがあります注12.このような機能の部分集合を定義することで,必要とされる機能だけを用途向けのOSがサポートすればよくなります.加えて,その定義に準拠したOSを採用するシステム間でアプリケーションの移行が容易になります.
注12;μITRON4.0仕様ではプロファイル,OSEK/VDX OS仕様ではコンフォーマンス・クラスという仕組みの中で機能の部分集合および詳細仕様を定めている.
機能セットとして例えば,次のようなものがあります.
- μITRON4.0仕様
スタンダード・プロファイル
自動車制御プロファイル
ベース・プロファイル - OSEK/VDX OS仕様注13
BCC1,BCC2,ECC1,ECC2
注13;OSEK/VDX OS仕様はもともと車載用途に特化したOS仕様ではあるが,車載機器といってもエアバッグ,エンジンからドア・ミラーに至るさまざまな種類の機器が存在するため複数の機能セットがコンフォーマンス・クラスという形で規定されている.