我有一个进程为一块硬件(数据传输设备)提供特定的缓冲区大小。我可以从 Windows 调度程序窗口合理地期望什么,以确保我没有得到缓冲区下溢?
我的缓冲区大小为 32K,每秒消耗约 800k 字节。
如果我将其填充为 16k 字节批次,即每 20 毫秒一批。但是,我填充它的下限是多少。如果说,我在填充循环中调用 sleep(0) 我合理的最坏情况调度间隔是多少?
操作系统 = Windows XP SP3 双核 2.2Ghz
请注意,我正在调用 API 来检查缓冲区填充级别,并调用驱动程序 API 以将数据传递给它。我假设这些是除了 sleep(0) 之外 Windows 可以使用的调度点。
我想(作为一个过程)表现得很好,并且仍然满足我的实时截止日期。机器专用于这项任务,但需要通过网络接收数据并将其发送到 IO 设备。
我对调度程序性能有什么期望?我还需要考虑什么。