16

ターゲットハードウェアプラットフォームの馬力が制限されているか、リアルタイムジョブでシステムのオーバーヘッドを最小限に抑える必要があります。これは、通常、デュアルカーネルがネイティブプリエンプションシステムよりも優れている場所です。

ここから:http ://www.xenomai.org/index.php/Xenomai:Roadmap#Xenomai_3_FAQ

Preempt_rtは、Linux全体をプリエンプトします。Linuxをプリエンプトすると、どのようにシステムに負荷がかかりますか?

そこでのFAQは、Xenomaiと比較したpreempt_rtについて説明しています。

4

2 に答える 2

20

CONFIG_PREEMPT_VOLUNTARY-このオプションは、カーネルコードの
長い待ち時間の最も一般的な原因にチェックを導入し、カーネルが実行を待機している優先度の高いタスクに自発的に制御を譲ることができるようにします。このオプションは、長いレイテンシーの発生を大幅に減らすと言われていますが、それでも完全に排除するわけではありません。

CONFIG_PREEMPT_RT-
このオプションにより、スピンロックで保護された領域(raw_spinlock_tによって作成された)外のすべてのカーネルコードが、優先度の高いカーネルスレッドによる非自発的なプリエンプションの対象になります。spinlock_tおよびrwlock_tによって作成されたスピンロック、およびこのオプションを有効にすると、割り込みもプリエンプト可能になります。このオプションを使用すると、最悪の場合の遅延は(約)1桁のミリ秒に低下します。

短所-
通常のLinuxカーネルでは、ユーザースペースコードが実行されている場合にのみ、優先度の高いタスクによるタスクのプリエンプションが許可されます。

待ち時間を短縮するために、CONFIG_PREEMPT_RTパッチは、より優先度の高いカーネルタスクの到着時に、カーネルに手元のタスクを非自発的にプリエンプトさせます。これにより、システムの全体的なスループットが低下することになります。これは、いくつかのコンテキストスイッチがあり、優先度の低いタスクが通過する機会があまりないためです。

ソース: https ://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions


使用される専門用語の説明

レイテンシーとは何ですか?
コンピュータシステムで発行された要求から同じ要求への応答が開始されるまでの時間は、遅延または応答時間と呼ばれます。
レイテンシの種類:

  • 割り込みレイテンシ:割り込み
    が生成されてから、対応する割り込みハンドラの実行が開始されるまでに経過した時間。
    例:ハードウェアデバイスがタスクを実行すると、割り込みが生成されます。この割り込みには、実行するタスクと実行する割り込みハンドラに関する情報が含まれています。次に、割り込みハンドラーが特定のタスクを実行します。
  • レイテンシーのスケジューリング
    イベントが発生したことを通知するウェイクアップから、カーネルスケジューラーがウェイクアップの発生を待機しているスレッド(応答)をスケジュールする機会を得るまでの時間です。スケジューリング待ち時間は、ディスパッチ待ち時間とも呼ばれます。
  • 最悪の場合の待ち時間
    コンピューターシステムで発行された要求と同じ要求への応答の開始との間で遅延する可能性のある最大時間。

スループットとは何ですか?
コンピューターが特定の期間に実行できる作業量は、スループットと呼ばれます。

コンテキストスイッチとは何ですか?
コンテキストスイッチは、あるプロセス/スレッドから別のプロセス/スレッドへのCPUの切り替えです。コンテキストスイッチは、カーネルモードでのみ発生します。これは、プロセスの現在の実行状態を保存し(後で実行を再開するため)、実行のために新しいプロセス/スレッドの保存された状態をロードするプロセスです。

于 2012-04-09T10:57:56.073 に答える
4

上位投票の回答に追加する「優先度の低いタスクは、通過する機会があまりない」

これが全体のポイントです(ただし、4つ以上のコアシステムでは、重要なタスクに干渉することを禁止されている限り、優先度の低いタスクを実行できます。ここで、すべての接続された周辺機器は、クリティカルスレッドを実行しているアプリがそれらにアクセスしたいときにブロックしないことでうまく機能します)。重要なビット(たとえば、外部入力をタイムリーに処理するための便利なシステムの開発や、モデルではなくライブデータを使用したデータ変換の動作のテストを検討している場合)は、タイムクリティカルな入力がどこから到着しているかをカーネルに通知する方法を用意することです。 。

現在の問題。Windowsシステムでは、150マイクロ秒のジッターなどに気付く「真面目なゲーマーまたは真面目なミュージシャン」になる可能性があります。キーボード、マウス、またはその他のヒューマンインターフェイスデバイスを重要な優先順位で処理するように指定する方法がない場合は、あらゆる種類の「Windows Update」などが実行され、USBで何らかのアクティビティが発生する可能性があります。入力の実行に関連するスレッドよりも優先度の高いコントローラー。

入力デバイス以外に何も付いていない2番目のUSBコントローラーを追加することで、オーディオの不具合が解決されたケースについて読みました。ポータブル設定では、ドライバーと一緒にシステム上の他のすべてをオーバーライドできる専用ハブ(またはfpga)を追加するために、ThunderboltPCIeパススルーが実際に必要です。これが、ミュージシャンに十分なパフォーマンスを提供するUSB​​製品が市場にあまり出回っていない理由です。(ドロップアウトのない1日で最大150マイクロ秒のジッターを伴う2ミリ秒の往復遅延)

于 2018-05-04T23:57:46.013 に答える