本記事では、イーソルの技術営業部 部長であり、リアルタイムOS製品のプロダクトマネージャを兼務する金子が、リアルタイムOSの比較検討に使われる一般的なベンチマークを紹介した上で、昨今の傾向から新たに加えるべきベンチマークについて解説します。
従来のベンチマークでは不足
リアルタイムOSの導入を検討し、複数の候補を比較検討する際に、以下の様なベンチマークが一般的に使われています。
- ネットワーク/ストレージスループット
- フットプリント (ROM/RAMサイズ)
- ブート時間
- API性能 (APIコール~リターンまでの時間)
しかし最近、これらの昔から使われている評価指標項目だけでは、自システムに最適なリアルタイムOSを見つけるのには不足となってきている様に思います。
その背景としては、まずCPU, メモリを始めとしたハードウェアの高性能化&低価格化が挙げられます。高性能ハードウェアを安価で使い、性能のボトルネックが解消された結果として、前述のベンチマークが「人並みであれば十分で、多少の速い/遅いは誤差の範囲」の問題となってしまいました。
さらに、CPUにおいてはマルチコアCPUの普及によって、純粋な1スレッド内におけるAPI等の処理速度といった「単一種目のスコア」よりも、「複合種目のスコア」の方がシステムにおけるボトルネックとして問題に挙がることが多くなってきました。「複合種目のスコア」とは、例えば複数スレッド間での複雑に絡み合う連携処理におけるトータルの速度などです。
また、モデルベース開発や仮想環境・シミュレータ環境での開発等、非実機環境での開発機会が増えており、この非実機環境と実機環境の動作一致のニーズが高まっています。シミュレータ環境で自システムのテストを重ねて仕上げれば、本番環境でも問題無く動作する様にしたいというニーズです。そのようなニーズを実現するためには、両方の環境でアプリケーションの挙動が論理的に等価であることを保証する必要があります。
新たなベンチマーク
それではどんな観点で追加のベンチマークを考えるべきでしょうか。 直ちに定量化が難しいものもありますが、最近の商談での経験を元に例を挙げてみます。
・ディターミニスティックな振る舞い
一例としては、ディターミニズム (Determinism, 決定論) がまず挙げられます。
一般的には、ディターミニズムとは、要求時間内に処理が実行できること (リアルタイムOSの文脈での「リアルタイム」と同じ意味) やそのための仕組みとしてのプリエンプション機能 (OSが低優先度スレッド実行中に実行権を強制的に奪い高優先度スレッドに与えること) を持つこと、または、同じ入力に対して常に同じ出力をすること等と解説されることが多い様です。
しかしここではもう一歩踏み込んで、あるひとまとまりの処理シーケンスにおいて、あらかじめ決められた順番と時間通りにいつ何時 (なんどき) においても動くことを指してディターミニスティックな振る舞い (Deterministic behavior) と呼ぶこととします。特に、複数スレッド間の連携処理における実行順序や、デバイス (ハードウェア) とドライバーとの相互のやりとりの実行順序において、あらかじめ決められた通りに振る舞うことを保証することは、前述の非実機環境での動作検証等において、重要な性能になってきます。
そしてこのディターミニスティックな振る舞いのための仕組みとして、OSのAPIのジッターレスまたはコンスタントな速度性能 (例:H/W由来のジッタを除くと、APIコール~リターンまでの時間が常に一定) や、該当処理が他の処理に時間的・空間的に干渉されない (FFI, Freedom From Interference) 性能 (例:別コアが過負荷状態でも前述の時間が常に一定、等) も具体的なベンチマークとなっていくと思われます。
・ブート処理カスタマイズ柔軟性
もうひとつの例としては、ブート処理カスタマイズ柔軟性とも呼ぶべき性能を挙げます。
ブート時間性能はベンチマーク比較においてアップルトゥアップルにならない代表格と言うべきもので、ブート時にアクティベートするOSコンポーネント (機能) が多ければ多い程それだけブート時間が増えるのは当然の話であり、OSベンダにとって理想的な条件下でのブート時間公表値は、大規模化したシステムへのリアルタイムOSの導入においてあまり有効ではないと思います。それよりも重要なのは、OSの一連のブート処理シーケンスの任意の場所に好きな処理を挿入できる柔軟性です。例えば、TCP/IP機能のアクティベートは後回しでいいからCAN通信機能だけは真っ先に動かしたい、等です。
今回はリアルタイムOSの導入で考慮すべき新たなベンチマークの観点として、二つの例を挙げさせていただきました。他にもマルチコアCPUでの並列処理性能や、リアルタイムOSで典型的な優先度ベーススケジューリングに加えて各種スケジューリングを併用できる性能等も挙げられます。これらのベンチマークも併せて評価し、最適なリアルタイムOSを選択すべきです。
イーソルでは、以下のリアルタイムOS製品を提供しています。
- eMCOS ®
次世代のソフトウェア・デファインドコンピューティングのための、ハイパフォーマンスでスケラブルなリアルタイムOSおよびハイパーバイザプラットフォーム - eT-Kernel™
TRON T-Kernel APIをベースとした、高い実績と安全性を誇るマイクロカーネル型リアルタイムOS
お客様が開発するシステムに合わせて最適な提案をさせていただきますので、リアルタイムOSの検討時はぜひイーソルまでお気軽にお問い合わせください。
技術営業部 金子智範