0

也就是说,如果核心处理器大部分时间都在等待来自 RAM 或 cache-L3 的数据带有 cache-miss,但是系统是实时的(实时线程优先级),并且线程是依附的(亲和)核心并在不切换线程/上下文的情况下工作,现代x86_64上应该显示什么样的负载(使用)CPU-Core ?

也就是说,只有在登录Idle时,CPU 使用率才会显示为减少?

如果有人知道,在这种情况下其他处理器的行为是否不同:ARM、Power[PC]、Sparc?

澄清:在 OS-Windows 的标准任务管理器中显示 CPU 使用情况

4

2 回答 2

2

因缓存未命中而停滞的硬件线程(逻辑核心)不能做任何其他事情,因此对于任务管理器/CPU时间计费/操作系统进程调度程序时间片/类似的东西来说,它仍然算作忙碌。

在所有架构中都是如此。

如果没有超线程,“硬件线程”/“逻辑核心”与“物理核心”相同。

Morphcore / 其他在超线程和更强大的单核之间的即时变化可能会使保持许多执行单元忙碌的线程与经常在缓存未命中时阻塞的线程之间存在差异。

于 2015-06-25T15:41:39.910 回答
0

我没有得到操作系统 CPU 使用统计信息和管道的最佳使用之间的联系。我认为它们是不相关的,因为操作系统不测量管道负载。
我写这篇文章是希望 Peter Cordes 可以帮助我更好地理解它,并作为评论的延续。


用户程序经常放弃对操作系统的控制:当他们需要用户输入或完成信号/消息时。GUI 程序基本上只是大循环,并且在每次迭代时,控制权都会交给操作系统,直到下一条消息。当操作系统拥有控制权时,它会调度其他线程/任务,如果不需要其他操作,则只需进入空闲进程(很久以前是一个紧密循环,现在是睡眠状态),直到下一次中断。这是空闲时间。

任何操作系统都将 ISR 处理用户输入所花费的时间视为空闲时间。那里的缓存未命中仍将被视为空闲时间。

一个繁重的程序需要更多时间来完成给定消息的工作,从而将控制权返回给操作系统,比如每秒 2 次而不是 20 次。
如果操作系统在最后一秒测量到,它只有 20 毫秒的控制权,那么 CPU 使用率是(1000-20)/1000 = 98%。

这与 CPU 架构的最佳使用无关,因为所述停顿可能发生在 OS 代码中,并且仍然是空闲时间统计的一部分。管道级别的 CPU 利用率不是测量的,它与操作系统统计数据正交。

CPU 使用率是由系统管理员使用的,它是衡量您对系统施加的负载的衡量标准,而不是衡量程序组合生成效率的衡量标准。系统管理员对此无能为力,但衡量操作系统恢复控制权(不抢占)的频率是衡量程序对系统施加多少负载的衡量标准。系统管理员可以明确地终止繁重的程序。

于 2015-06-26T07:01:32.783 回答