不確定特異点

広く深く、ところどころ超深く

μITRON と OSEK/VDX

勉強のために既存の RTOS の仕様を確認しよう、というわけで、最近は μITRON と OSEK/VDX について調べてました。μITRON は対象となるシステム向けにプロファイルが規定されており、OSEK/VDX は車載システムに特化した RTOS です。なので、車載向けで比較してみることにします。

機能 μITRON 4.0 (自動車) OSEK/VDX
タスク管理機能
タスク付属動機機能 ×
セマフォ ×
イベントフラグ
データキュー ×
ミューテックス(※) ×
システム時刻管理機能 ×
周期ハンドラ ×
アラームハンドラ ×
システム状態管理機能 ×
割り込み管理機能
システム構成管理機能 ×

※ OSEK/VDX ではリソースと呼んでいる。

こうして見ると OSEK/VDX はものすごくシンプルです。自タスクを自発的に待ち状態に遷移させたり、他タスクを停止させたりといった、タスク状態を遷移させるための機能がなく、同期機能もイベントとリソースの 2 つのみ。これは車載に特化するために徹底的に機能を削ぎ落としているのだと思います。逆に μITRON は何でもありでラグジュラリー、という印象。イベントフラグは両者に共通しており、基本的な同期機構なので、自作の RTOS にも実装してみようと思います。ちなみに、サービスコール(システムコール)の数を比較してみると、μITRON が 51、OSEK/VDX が 26 でした。