2011-07-23 19 views
2

REALTIME_PRIORITY_CLASSTHREAD_PRIORITY_TIME_CRITICALは実際にはですか?SetPriorityClass(REALTIME_PRIORITY_CLASS)は実際に何をしていますか?

はそれをしない:

  • を防ぐには、(スレッドがスリープしない限り)プロセッサ上で

を起こってから切り替え

  • 防止コンテキストを発射からの割り込み?

    それを防止起こってから上記を実行している場合:

    • 私はこのフラグを持つプロセッサ上でプログラムを実行するとどのように私はまだ一貫性のないタイミング結果を得る、来ますか?何もプログラムが中断していなければ、プログラムは毎回同じ時間を費やすべきではありませんか?

    それは起きてから上記妨げるものではない場合:私は間違ってそれを使用する場合

    • はなぜ私のシステム(マウス、キーボードなど)がロックアップしますか?ドライバにはまだプロセッサ時間が必要ですか?
  • 答えて

    0

    それは(SleepまたはSwitchToThreadを経由して)それをあきらめるか、死ぬまで、それは基本的に自分のスレッドにだけ多くの時間に、システムのスケジューラに指示します。タイミングが同じでない場合、OSは各ラン間でまだ実行されていますが、これはラムやキャッシングなどを変更する可能性があります。第2に、ほとんどのタイミングが不正確なため、変動します(特にGetTickCountなどのシステム量子ベースのタイミング)。 OSには、省電力/動的な周波数調整のようなものがありますので、他のものが動いていることに気付くかもしれませんが(特に複数の物理スレッドを実行できる場合)、RDTSCを使うのが最も良いでしょう。 。

    関連する問題