IO 操作が完了したときにスレッドを切り替えるためのおおよその時間遅延 (Win 7、Vista、XP) を決定しようとしています。
私が(私が思うに)知っていることは次のとおりです。
a) スレッド コンテキスト スイッチは、それ自体が計算上非常に高速です。(非常に高速とは、通常は 1ミリ秒未満、場合によっては 1 秒未満という意味ですか? - 比較的高速で、負荷のないマシンなどを想定しています。)
b) ラウンド ロビン タイム スライス クォンタムは 10 ~ 15 ミリ秒のオーダーです。
私が見つけることができないように見えるのは、(優先度の高い)スレッドがアクティブ/シグナル状態になる(たとえば、同期ディスク書き込みの完了を介して)、およびそのスレッドが実際に再び実行されるまでの典型的な待ち時間に関する情報です。
たとえば、少なくとも 1 つの場所で、すべての非アクティブなスレッドは、システムのクォンタムが最大 10 ミリ秒になるまでスリープ状態のままであり、その後 (準備ができていると仮定して) ほぼ同時に再アクティブ化されることを読みました。しかし、別の場所で、スレッドが I/O 操作を完了してからアクティブ/シグナル状態になり、再び実行されるまでの遅延は、ミリ秒ではなくマイクロ秒で測定されることを読みました。
質問する私のコンテキストは、高速カメラからの SSD の RAID アレイへのキャプチャと連続ストリーミング書き込みに関連しています。前の書き込みが 1 ミリ秒未満で完了した後に新しい書き込みを開始できない場合は、 1/10ms、平均)、問題になります。
この問題に関する情報をいただければ幸いです。
ありがとう、デビッド