web-dev-qa-db-ja.com

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

私が過去に読んだことから、Windowsアプリケーションの優先順位をプログラムで変更しないことをお勧めします。変更した場合は、「リアルタイム」に変更しないでください。

「リアルタイム」プロセスの優先度設定は、「高」および「通常以上」と比較して何をしますか?enter image description hereenter image description here

64
Chris S

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

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

Vista以降では、リアルタイムの優先度で実行する必要があるアプリケーションのオプションの1つは、 Multimedia Class Scheduler Service (MMCSS)を使用して、スレッドの優先度を管理することです。 MMCSSは、アプリケーションがCPU時間を使いすぎることを防止するので、マシンの負荷を心配する必要はありません。

76
Larry Osterman

単純に、「リアルタイム」優先度クラスは「高」優先度クラスよりも高いです。それ以上のことはないと思います。そうそう-スレッドをReal Timeクラスに入れるにはSeIncreaseBasePriorityPrivilegeが必要です。

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

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

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

24
Michael Burr

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

基本的に、尋ねる必要がある場合は使用しないでください:)

16
Eric Petroelje

リアルタイムは、プロセスで利用可能な最高の優先度classです。したがって、「高」とは1ステップ大きく、「通常以上」とは2ステップ大きく異なります。

同様に、リアルタイムもスレッドの優先度レベルです。

プロセス優先度classは、プロセス内のすべての有効なスレッド優先度を上げ下げするため、「基本優先度」と見なされます。

したがって、プロセスには次のものがあります。

  1. 基本プロセス優先度クラス
  2. 個々のスレッドの優先度、基本優先度クラスのオフセット。

リアルタイムは、実行中の他のプロセスを確実に先取りしなければならないアプリケーション用に予約されているため、それの無計画な使用から保護するための特別なセキュリティ特権があります。これはセキュリティポリシーによって定義されます。

NT6 +(Vista +)では、Vista Multimedia Class Schedulerの使用は、リアルタイムOSであるnotでリアルタイム操作を実現する適切な方法です。 。 OSはリアルタイム操作向けに設計されていないため、ほとんどの部分で機能しますが、完全ではありません。

マイクロソフトは、この優先順位を非常に危険だと考えています。非常に特殊な状況を除いて、アプリケーションはそれを使用してはならず、一時的なニーズに限定して使用してください。

2
dyasta

Windowsは、プログラムが通常よりも高い優先度を使用していることを知ると、プロセスの優先度を制限しているように見えます。

優先順位をIDLEからREALTIMEに設定しても、CPU使用率は変わりません。

マルチプロセッサAMD CPUで、最後のCPUのようにCPUの1つをドロップすると、CPU使用率が最大になり、最後のCPUがアイドルのままになることがわかりました。 Quad AMDでは、プロセッサ速度が75%に向上します。

タスクマネージャを使用->プロセスを選択->プロセスを右クリック->選択->アフィニティを設定最後のプロセッサを除くすべてをクリックします。ビデオの処理が増加すると、CPU使用率は残りのプロセッサーで最大になり、フレーム数が増加します。

1
wizkid18

それは基本的に他のすべてでより高い/大きいです。キーボードは、リアルタイムプロセスよりも優先順位が低くなります。これは、プロセスがキーボードよりも速く考慮され、それを処理できない場合はキーボードが遅くなることを意味します。

0
Cheaty Hotbeef

リアルタイムの前に他のすべての答えのように、そのプログラムに最優先クラスを与えます。そのプログラムが処理されるまで、何も処理されません。
ペンティアム4マシンでは、ゲームのパフォーマンスが大幅に向上し、システムが完全に安定しているように見えるため、Minecraftをリアルタイムに設定しました。マルチコアが特定のコアにプログラムの親和性を設定している場合(すべてではなく、リアルタイムで他のすべてを実行できるようにするために)リアルタイムは見た目ほど悪くはありません設定プログラムがハングアップする)、優先度をリアルタイムに設定します。

0
Sam Hook