@rtm

@rtmは、トライテックのノウハウを集めて開発した高性能、軽量カーネルTTMを核として、柔軟なI/O機構、豊富なアプリケーション環境、強力なデバッグ機構を持ったリアルタイムオペレーションシステムです。

なお資料は、下記を用意しております。ご参考にしていただければと思います。

カーネル Tritech TCP/IP Monitor

TTMはSMP対応のプリエンプティブなラウンドロビンスケジューリング方式の軽量・高速カーネルです。優先度は0から15までの16段階がデフォルトとなっています。

柔軟なインタフェース構成

TTMは上位レイヤに対して、プリミティブインタフェースを提供し、上位レイヤはそれを利用してセマフォ、メールボックス、ミューテックス(ミューテックスプロトコルをサポート)、条件変数を実現しています。プリミティブインタフェースは様々な上位インタフェースに対応できるように設計されており、現在ではITRON 4.0インタフェースとPosix 1004c(a.k.a pthread)をサポートしています。

マルチプロセッササポート

マルチプロセッササポートにはMUP(MULtiple UniProcessor)とSMP(Symmetric MULtiProcessor)の2種類があります。MUPとはCPUごとにタスクキューを保持して、複数のCPU間でのタスクの共有を行わない方式のことです。この方式はRTLinuxのデフォルトスケジューラで採用されているもので

  • キャッシュの効率的な利用
  • CPU附属タイマを利用可能

という利点がありますが、タスクのCPUを指定しなければならず柔軟性に欠け、マルチプロセッサの利点を十分に活かすことができません。

それに対して、SMPでは1つのタスクキューをCPU間で共有する方式です。この方式では全てのタスクが全てのプロセッサで実行可能なので、マルチプロセッサの性能をフルに発揮することができます。また、キャッシュについてはタスクにCPU Affirnityという属性を導入してタスクを可能な限り同じCPUで実行させ、キャッシュフラッシュの回数を減らしています。

TTMはSMP方式でマルチプロセッサをサポートしています。

プリエンプティブなカーネル

割り込みを契機としてスケジューリングが発生することをプリエンプションといいます。TTMはプリエンプティブなカーネルなので、I/O待ちの高い優先度のタスクがI/O割り込みによって即座に実行を再開することができます。

高性能

リアルタイムオペレーティングシステムの性能を示す値として、Worst Time Interrupt LatencyとContext Change Latencyという値があります。Worst Time Interrupt Latencyとは割り込みの発生からユーザが登録した割り込みハンドラが呼び出されるまでの時間の最悪値をいいます。Worst Time Interrupt Latencyは最大の割り込み禁止時間と割り込みハンドラの最初からユーザISR(Interrupt Service Routine)までの時間を足すことで計算できます。

Context Change Latencyとはタスクがブロックしてスケジューラに入ってから、新しいタスクを選択して、そのタスクのコンテキストのロードを完了するまでの時間のことをいいます。