我没有得到操作系统 CPU 使用统计信息和管道的最佳使用之间的联系。我认为它们是不相关的,因为操作系统不测量管道负载。
我写这篇文章是希望 Peter Cordes 可以帮助我更好地理解它,并作为评论的延续。
用户程序经常放弃对操作系统的控制:当他们需要用户输入或完成信号/消息时。GUI 程序基本上只是大循环,并且在每次迭代时,控制权都会交给操作系统,直到下一条消息。当操作系统拥有控制权时,它会调度其他线程/任务,如果不需要其他操作,则只需进入空闲进程(很久以前是一个紧密循环,现在是睡眠状态),直到下一次中断。这是空闲时间。
任何操作系统都将 ISR 处理用户输入所花费的时间视为空闲时间。那里的缓存未命中仍将被视为空闲时间。
一个繁重的程序需要更多时间来完成给定消息的工作,从而将控制权返回给操作系统,比如每秒 2 次而不是 20 次。
如果操作系统在最后一秒测量到,它只有 20 毫秒的控制权,那么 CPU 使用率是(1000-20)/1000 = 98%。
这与 CPU 架构的最佳使用无关,因为所述停顿可能发生在 OS 代码中,并且仍然是空闲时间统计的一部分。管道级别的 CPU 利用率不是测量的,它与操作系统统计数据正交。
CPU 使用率是由系统管理员使用的,它是衡量您对系统施加的负载的衡量标准,而不是衡量程序组合生成效率的衡量标准。系统管理员对此无能为力,但衡量操作系统恢复控制权(不抢占)的频率是衡量程序对系统施加多少负载的衡量标准。系统管理员可以明确地终止繁重的程序。