μITRON

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

μITRON(まいくろあいとろん、Micro Industrial TRONΜITRON)は、坂村健教授(東京大学)が開始したTRONプロジェクトのサブプロジェクトであるITRONプロジェクトが作成した工業用途リアルタイムオペレーティングシステムの仕様である。

μITRONは、当初、小規模な組み込みシステム向けに設計したITRONのひとつの版であった。しかし、設計者の予想に反し、32ビット以上のCPUを採用した比較的大規模な組み込みシステムで採用するようになったことから、本家であるITRONがμITRONに吸収される形で現在に至っている。

2011年時点の最新版はVer.4.03.03である。また、システムの大規模化・複雑化に対応するため、メモリ保護機能拡張を備えたμITRON4.0/PX仕様も公開している。なお、μITRONはあくまでも仕様にすぎず、Nucleus RTOSにμITRON4.0に準拠したAPIを搭載した「Nucleus μiPLUS」など、様々な実装形態がある。

目次

[編集] 主な機能

[編集] タスク管理機能

μITRONにおけるタスクは、他の多くのオペレーティングシステムにおけるスレッドと等価であり、アプリケーション内におけるプログラムが並列実行する単位である。μITRONカーネル上で動作するアプリケーションは、少なくとも0個以上のタスクから構成する。

[編集] タスク例外処理機能

タスク例外処理機能はタスク上で発生した例外事象を処理するための機能である。割り込みやCPU例外がタスクとは異なるコンテキスト(非タスクコンテキスト)で処理するのに対し、タスク例外処理はタスクと同じコンテキスト(タスクコンテキスト)で処理する点が異なる。タスク例外処理ルーチンでは、タスクコンテキストで呼び出し可能な全サービスコールを使用することができる。

[編集] 同期通信機能

同期通信機能は複数のタスクの実行順序の制御やデータの送受信を行うための機能である。μITRON4.0仕様の同期通信機能には、次の7種類が存在する。

このうち[S]の付くサービスコールはスタンダードプロファイルでも対応している。また、[A]の付くサービスコールは自動車制御プロファイルでも対応する。

[編集] メモリプール管理機能

メモリプール機能はメモリブロックを動的に割付け・解放を行うための機能であり、概ねC言語におけるmalloc/free関数の機能に相当する。μITRON4.0仕様のメモリプール管理機能には、次の2種類が存在する。

  • 固定長メモリプール [S]
  • 可変長メモリプール

このうち固定長メモリプールはスタンダードプロファイルでも対応する。自動車制御プロファイルではメモリプール管理機能は対応しない。

[編集] 時間管理機能

時間管理機能はカーネルが管理する時間に依存した処理を行うための機能である。 μITRON4.0仕様の時間管理機能には、次の4種類が存在する。

  • システム時刻管理 [S][A]
  • 周期ハンドラ [S][A]
  • アラームハンドラ
  • オーバーランハンドラ

このうち[S]の付くサービスコールはスタンダードプロファイルでも対応する。また、[A]の付くサービスコールは自動車制御プロファイルでも対応する。時間管理機能が管理する各種ハンドラは、タスクとは異なるコンテキスト(非タスクコンテキスト)で処理する。

[編集] システム状態管理機能

システム状態管理機能は、タスクの優先順位の回転、CPUロック状態やディスパッチ禁止状態の制御等を行うための機能である。

[編集] 割り込み管理機能

割り込み管理機能は、外部割込みが起動する割り込みハンドラおよび割り込みサービスルーチンを管理するための機能である。スタンダードプロファイルおよび自動車制御プロファイルでは、割り込みハンドラまたは割り込みサービスルーチンのいずれか一方のみを対応する。

割り込みハンドラおよび割り込みサービスルーチンは、タスクとは異なるコンテキスト(非タスクコンテキスト)で処理する。

[編集] サービスコール管理機能

サービスコール管理機能は、ユーザ定義の拡張サービスコールの定義と呼び出しを管理するための機能である。

[編集] システム構成管理機能

システム構成管理機能は、CPU例外ハンドラの定義、コンフィギュレーション情報、バージョン情報の取得、および初期化ルーチンの登録を行うための機能である。

[編集] 静的API

組み込みシステムでは、オブジェクトの生成を静的に(コンパイルリンク時に解決できる方式で)解決できる機能が要求される場合が多くある。μITRON4.0仕様では、静的APIと呼ばれる一種のスクリプトを、コンフィギュレーションファイルに記述することで、静的にオブジェクトを生成することが可能になる。

[編集] プロファイル

[編集] スタンダードプロファイル

スタンダードプロファイルは、主としてソフトウェアの移植性の向上を目的とした機能集合である。スタンダードプロファイルでは、使用可能なオブジェクトの種類を制限したほか、オブジェクトの生成は静的APIによる方法に制限している。 TRON全体に共通して言えることであるが、μITRONは仕様のみを提供するものである。その実装は各ベンダに任されている。そのため、同じμITRONであっても実装間の差が大きく、ソフトウェア資産の再利用性に問題があった。μITRON4.0仕様ではスタンダードプロファイルを規定することで、各実装に最低限の互換性を持たせることを試みている。

[編集] 自動車制御プロファイル

自動車制御プロファイルは、カーネルのオーバーヘッドメモリ使用量の削減を目的とした、主に自動車制御アプリケーションを対象とした機能セットである。自動車制御プロファイルでは、使用可能なサービスコールを、スタンダードプロファイルより更に制限し、かつ、待ち状態への遷移不可・優先度変更不可といった特徴を持つ制約タスクが導入されている。

同様の目的を持ったOS仕様に、OSEKがある。

[編集] 保護機能拡張(μITRON4.0/PX仕様)

保護機能拡張は、昨今のソフトウェアの大規模化・複雑化、および開発期間短縮の要求の中で、ソフトウェアの品質・信頼性の向上を維持するために検討した。

[編集] 拡張の目的

保護機能拡張の目的は次の3点である。

  • セキュリティ確保
  • 信頼性の向上
  • デバッグ支援

[編集] 主な追加・変更点

保護機能拡張では、保護ドメインを単位としたメモリアクセス制御を中心として、以下の点が追加・変更している。

  • アクセス許可ベクタによる保護ドメインごとのアクセス制御
  • 可変長メモリプール機能のサポート廃止
  • 保護メモリプール機能のサポート
  • 保護メールボックス機能のサポート
  • メモリオブジェクトのサポート

[編集] 最近の動向

最近ではμITRONの実装を統合するための試みも開始している。高田広章教授(名古屋大学)が開始したTOPPERSプロジェクトでは、オープンソースの実装を開発・公開し、μITRONの決定版を目指している。

T-Engineプロジェクトは、μITRONからT-Kernelへの移行を呼びかけている。T-Kernelは、仕様上はμITRON3.0と酷似しておりいくつかの機能拡張を施したものとみなすことができる。

[編集] 参考文献

  • 坂村健 監修 『μITRON4.0標準ガイドブック』 パーソナルメディア ISBN 4893621912 2001年11月

[編集] 外部リンク


個人用ツール
名前空間

変種
操作
案内
ヘルプ
ツールボックス