技術的特長
SUSE Linux Enterprise Real Timeは、最新のリアルタイムLinuxカーネルをベースにしており、オープンソースコミュニティの最新リアルタイムパッチセットであるpreempt_RT (アダプティブロック、デバイスレベルの割り込みスレッド、および優先度の継承によるプリエンプションをサポートするパッチセット)を備えています。また、CPUシールド機能、リソース割り当て機能、高分解能タイマー、およびOpenFabrics Allianceが提供する最新のオープンソースRDMAソフトウェアスタックであるOpenFabrics Enterprise Distribution (OFED)のカーネルドライバもサポートしています。
アダプティブロック
SUSE Linux Enterprise Real Timeには、汎用Linux OSカーネルの従来割り込み不可能であったセクションへの割り込み、つまり強制排除を可能にする変更が複数含まれています。優先度の高いプロセスに対して、割り込み不可能なOSプロセスが割り込んだり開始を妨げたりする可能性を排除できれば、レイテンシを最小限に抑えることができ、レスポンスタイムを予測しやすくなります。そのための変更の1つがアダプティブロックです。これは、スリープ、つまり休止状態になり、保持しているリソースを解放して、優先度の高いプロセスの実行を可能にします。アダプティブロックにより、OSのコンテキスト切り替え時間が短縮されるため、スループットに左右されるワークロードのパフォーマンスが大幅に向上します。
割り込み実行スレッド
Real Timeカーネルの強制排除機能を高めるもう1つの変更点は、カーネル実行割り込みスレッドです。割り込みはハードウェア(ハード割り込み)またはソフトウェア(ソフト割り込み)によって開始されるプロセスで、開始されるとLinuxカーネルをプロセスモードから割り込みモードに切り替えます。汎用OSにおいて割り込みモードで動作するプロセスは、ノンプリエンプティブです。SUSE Linux Enterprise Real Timeでは、割り込みがカーネルスレッドでバインドまたはカプセル化されています。割り込みが可能なカーネルスレッドにより、ユーザーが定義した優先度の高いプロセスによるハード割り込みまたはソフト割り込みのプリエンプションが可能になります。
優先度の継承
優先度の高いプロセスがタスクを完了するために優先度の低いプロセスを終了する必要がある場合に、優先度の低いプロセスに高い優先度が継承される機能です。SUSE Linux Enterprise Real Timeでは、優先度の高いプロセスにより開始されたカーネルサービスは、必要なセマフォを保持している優先度の低いプロセスにより開始されたカーネルサービスが低い優先度のまま進行している場合、それを無期限に待機することはありません。セマフォが解放されるまで、優先度の低いプロセスの優先度は高められます。つまり、優先度の低いプロセスが優先度の高いプロセスの優先度を継承することになります。また、Real Timeには、優先度の継承をユーザー領域に拡張する代替glibcが用意されています。代替glibcを使用するアプリケーションは、優先度の継承をPOSIXミューテックスに適用するよう要求できます。
CPUシールド機能と割り当て
SUSE Linux Enterprise Real Timeでは、CPUへのプロセスおよびスレッドの割り当てを完全に制御できます。リアルタイム処理を必要とするプロセスが、専用CPUまたはコアにおいて排他的に実行されるよう、指定することができます。リアルタイムのタスクを実行しているCPUは、優先度の高いプロセスで常にリソースが利用できるように、明示的に割り当てられていない他のプロセスから完全に保護することができます。また、システム負荷の増大による影響を最小限に抑えて、信頼性と予測可能性を改善できます。
高分解能タイマー
低分解能(40ミリ秒)Posixタイマーカーネルサービスは、新しい約2マイクロ秒の分解能に置き換えられました。割り込み、システム呼び出し、カーネルデーモン、ユーザーアプリケーションの処理に要するシステムが時間は、ナノ秒単位の分解能で表されます。