LinuxによるRTOSの実現

LinuxによるRTOSの実現(2)

マイクロカーネル方式とリアルタイム性能

近藤 純司 富士通プライムソフトテクノロジ 2005/4/12

シンプルなリアルタイムカーネル上でLinuxを動作させるマイクロカーネル方式。この方式の具体的な実装やリアルタイム性能を検証する。(編集局)

- PR -

 第1回では、リアルタイムLinuxのさまざまな実現方法について述べた。今回は、マイクロカーネル方式を中心に性能比較なども交えて説明する。

マイクロカーネル方式とは

 マイクロカーネル方式の実装としては、RTLinuxとRTAIが有名であり活用例も多い。

 RTLinuxは、FSMLabs(http://www.fsmlabs.com/)が提供しているハードリアルタイムLinuxシステムである。商用版のRTLinuxProとオープンソース版のRTLinux/GPLがあるが、今回は広く入手可能なオープンソース版を評価する。

 一方、RTAI(Real-Time Application Interface)は、DIAPM(Department of Aerospace Engineering of Politecnico di Milano)で開発され、オープンソースプロジェクトとして進化を続けている(http://www.rtai.org/)。現在は、Adeosと呼ばれるナノカーネル上にLinuxカーネルが実装されている。将来的には、「fusion」と呼ばれるプロジェクトで以下のような機能が統合されていく。

  • ユーザー空間のアプリケーションとしてハードリアルタイムを実現
  • 既存のRTOSのAPIをスキンと呼ばれる仕組みで統合

 特に後者については、RTAI独自のAPIおよびPOSIX APIに加えて、μITRONやVxWorksなどの互換APIへの取り組みも散見される()。このように、fusionは非常に興味深いが実験的なリリースであるため、今回はRTAIの最新開発版を評価する。

注:fusion 0.6.9(本稿執筆時点における最新版)現在。

マイクロカーネルの役割

 RTLinux、RTAIともに、Linuxカーネルはマイクロカーネル(またはナノカーネル)の上で動作する。このマイクロカーネルを、RTLinuxは「Realtime executive」、RTAIは「Adeos」と呼んでいる。

 マイクロカーネルの主な機能は以下の3つである。

  • タスクのスケジューリング

    タスクスケジューリングはマイクロカーネルで行う。Linuxカーネルでさえもマイクロカーネル上の1つのタスクとして振る舞い、最も低い優先度が割り当てられている。よって、Linuxカーネルがいかなる処理をしていても、リアルタイムタスクが走行可能な状態になれば、即座に処理を移すことができる。

  • ハードウェア割り込みの調停

    ハードウェア割り込みは、すべてマイクロカーネルが管理する。ハードウェアから割り込みが通知されると、マイクロカーネル内のハンドラによって処理される。その後、Linuxカーネルが通知された割り込みに対してハンドラを登録している場合は、適切なタイミングでLinuxカーネルに対して割り込みを伝播する。これによりLinuxカーネルは、あたかも割り込みを直接通知されたかのように処理を行うことができる。

    図1 割り込み資源の調停(第1回からの再掲)

    タスクスケジューリングとハードウェア割り込みの調停機能により、Linuxカーネルの振る舞いに干渉されることなくハードリアルタイム処理を行うことができる。

  • タスク間通信

    タスク間通信としては、FIFOや共有メモリといった機構が提供されている。特に、Linuxタスクに対しては、Linuxプロセスとリアルタイムタスク間で通信するAPIを定義している。

    図2 Linuxとリアルタイムタスク間の通信(第1回からの再掲)

 以上のように、ハードリアルタイムな制御はマイクロカーネルの管理下で行い、ネットワークやマルチメディアなどの機能はLinuxカーネル(タスク)の管理下で実現する。これにより、リアルタイム性と豊富な機能を兼ね備えたシステムを構築できる。

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

震災関連・復興支援情報

震災関連・復興支援情報
@IT MONOist/EE Times Japan/環境メディアの製造業技術者向け3メディアを中心に、震災関連/復興支援情報を集めました

次世代エンベデッドコーナー

次世代エンベデッド
“次世代”の組み込み機器を開発するエンジニアを支援するコーナー。新潮流・新技術をインタビューやコラム、解説記事で分かりやすく紹介!

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報

- PR -