「リアルタイム」プロセスの優先順位設定とは何ですか?



What Is Therealtimeprocess Priority Setting



解決:

リアルタイム優先スレッドは、タイマー割り込みによってプリエンプトされることはなく、システム内の他のスレッドよりも高い優先度で実行されます。そのため、CPUにバインドされたリアルタイム優先スレッドは、マシンを完全に台無しにする可能性があります。

リアルタイム優先スレッドの作成には特権(SeIncreaseBasePriorityPrivilege)が必要であるため、管理ユーザーのみが作成できます。



Vista以降の場合、リアルタイムの優先順位で実行する必要があるアプリケーションの1つのオプションは、マルチメディアクラススケジューラサービス(MMCSS)を使用して、スレッドの優先順位を管理できるようにすることです。 MMCSSは、アプリケーションがCPU時間を使いすぎるのを防ぐので、マシンのタンクを心配する必要はありません。


簡単に言うと、「リアルタイム」優先度クラスは「高」優先度クラスよりも高くなります。それ以上のものはないと思います。そうそう-あなたは持っている必要がありますSeIncreaseBasePriorityPrivilegeは、スレッドをRealTimeクラスに配置します。



Windowsは、さまざまな理由でスレッドの優先度を上げることがありますが、スレッドの優先度を別の優先度クラスに上げることはありません。また、リアルタイム優先度クラスのスレッドの優先度を上げることもありません。したがって、優先度の高いスレッドは、リアルタイムの優先度クラスに自動的に一時的にブーストされることはありません。

Windowsが優先順位を処理する方法に関するRussinovichの「InsideWindows」の章は、これがどのように機能するかを学ぶための優れたリソースです。

  • http://web.archive.org/web/20140909124652/http://download.microsoft.com/download/5/b/3/5b38800c-ba6e-4023-9078-6e9ce2383e65/C06X1116607.pdf

通常のWindowsシステムでリアルタイム優先度を持つスレッドにはまったく問題がないことに注意してください。これらは必ずしも専用マシンで実行される特別なプロセス用ではありません。マルチメディアドライバーやプロセスには、リアルタイムの優先順位を持つスレッドが必要になると思います。ただし、このようなスレッドは多くのCPUを必要としないはずです。通常のシステムイベントが処理されるためには、ほとんどの場合ブロックされているはずです。




これは利用可能な最高の優先度設定であり、通常、その特定のプログラムの実行専用のボックスでのみ使用されます。実際には十分に高いため、キーボードとマウスのスレッドが応答しなくなるほどの枯渇を引き起こす可能性があります。

だから基本的に、あなたが尋ねなければならないなら、それを使わないでください:)