ハードウェア (データ転送デバイス) に特定のバッファー サイズを供給するプロセスがあります。バッファ アンダーフローが発生しないようにするために、Windows スケジューラ ウィンドウに期待できることは何ですか?
私のバッファのサイズは 32K で、1 秒あたり最大 800k バイト消費されます。
20ms ごとに 1 つのバッチである 16k バイトのバッチで入力するとします。ただし、それを埋めるための下限は何ですか。たとえば、充填ループで sleep(0) を呼び出した場合、合理的な最悪の場合のスケジューリング間隔はどれくらいですか?
OS = Windows XP SP3 デュアルコア 2.2Ghz
バッファ フィル レベルをチェックするための API 呼び出しと、データを渡すためのドライバ API への呼び出しを行っていることに注意してください。これらは、Windows が sleep(0) に加えて利用できるスケジューリング ポイントであると想定しています。
私は(プロセスとして)うまくプレイし、それでもリアルタイムの締め切りに間に合いたいと思っています. マシンはこのタスク専用ですが、ネットワーク経由でデータを受信し、IO デバイスに送信する必要があります。
スケジューラのパフォーマンスについて期待できることは何ですか? 他に何を考慮する必要がありますか。