2

REALTIME_PRIORITY_CLASS(with THREAD_PRIORITY_TIME_CRITICAL)は実際に何をしますか?

それは:

  • 割り込みが発生しないようにする
  • コンテキストの切り替えが起こらないようにする

プロセッサ上で (スレッドがスリープしない限り)?

上記のことが起こらない場合:

  • このフラグを使用してプロセッサでプログラムを実行すると、一貫性のないタイミング結果が得られるのはなぜですか? プログラムを中断するものがない場合、プログラムは毎回同じ時間を費やすべきではありませんか?

上記のことが起こらない場合:

  • システム (マウス、キーボードなど) を誤って使用するとロックするのはなぜですか? ドライバーはまだプロセッサー時間を取得するべきではありませんか?
4

1 に答える 1

0

Sleep基本的に、システム スケジューラは、(またはを介し​​て) スレッドを放棄するか、終了するまで、スレッドに多くの時間を費やすように指示されますSwitchToThread。タイミングが同じでない場合、OS は各実行の間に実行されます。これにより、RAM やキャッシュなどが変更される可能性があります。次に、ほとんどのタイミングは不正確であるため、変動します (特に のようなシステム量子ベースのタイミングGetTickCount)。OS には、省電力/動的周波数調整などの機能も多数あるため、RDTSC を使用することをお勧めしますが、それでも他のものが実行されていることに気付く場合があります (特に複数の物理スレッドを実行できる場合)。 .

于 2011-07-23T12:06:43.810 に答える