続いてのRTXだが、これはArdenceというか、その改称前のVenturComの時代に開発されたRTOSである。コンセプトはETSからさらに一歩進めて、Windows環境とRTOS環境が共存する、というものである。具体的な実装がこちら(図2)。
まず、Windows NTのHALとは別にRTXのHALが搭載され、この上でRTXのカーネルが独自に動く形になる。ドライバ類も原則としてRTX用のものが別に用意され、これで動作することになるが、ごく一部のRTKAPIに対応したドライバはRTXカーネルを直接たたくことができる。アプリケーションは、RTX Server ConsoleなどRTX専用APIに対応したものは直接RTX Kernel上で動くが、通常はWin32アプリケーションの中でRTKAPIを呼び出す形で動作するという仕組みだ。ちなみに、CPUそのものはWin32向けとRTX向けが別々にパーティショニングされる形になる。
図2はRTX 2016のものだが、もう少し昔のスライドで出て来た内部構造がこちら(図3)。Win32 ProcessとReal-time ProcessはドライバレベルのLPC(Local Procedure Call)で通信を行っているのが分かる。RTXカーネル(RTX RTSS)はプリエンプティブで、128レベルのプライオリティベースのスケジューラが搭載されており、コンテクストスイッチング速度は、動作周波数1GHzのPentium IIIの場合で以下のようになっている。
RTXでProcess間とThread間のスイッチングに差がないのは、Pentium IIIではSMT(HyperThreading)に対応していないためで、恐らく現在のSMT対応CPUであれば、Thread間Switchingはもっと高速だろう。その他の処理速度の実測値がこちら(図4)。かなり高速なのがお分かりいただけるかと思う。
VenturComはWindows NT 3.5に対応したRTXの最初のバージョンを1995年にリリースし、以降は2016年の最終版(RTX 2016)まで21年にわたってこのRTXを提供してきた(先述した通り、提供会社はVenturCom→Ardence→Citrix→IntervalZeroと変遷しているが)。このRTX 2016はサポートが2021年3月で終了しており、もう新規設計とかは不可能になっている。
Copyright © ITmedia, Inc. All Rights Reserved.