假设计算机只有一个核心 - 那么进程 A 以 100% 的 CPU 容量运行与(假设)10% 的 CPU 容量运行究竟意味着什么。
如果 CPU 为 2.0 GHz,这是否意味着在进程 A 的时间片中,处理器每秒执行 20 亿步(如果容量为 100%),但只会执行 2 亿步(如果容量为 10%)?
什么原因会导致 100% 情景和 10% 情景?
答案1
CPU 使用率由操作系统计算进程/任务调度程序。事实上,如果 CPU 使用率为 10%,则表明该任务在任务调度程序的单位周期的 10% 内处于活动运行状态;其他程序可能在剩余的 90% CPU 时间内运行,或者操作系统将只是处于空闲状态。同样,如果全部的CPU 使用率全部程序为 10%,这表明 90% 的时间内系统上没有任何程序正在执行。
由于在多任务操作系统(如 Windows 或 Linux)中没有程序在“裸机”上运行,因此 CPU 使用率衡量的是 CPU 周期用于运行特定程序的百分比。这就是为什么如果程序中有无限循环,即使没有“工作”在进行,CPU 使用率仍接近 100%(因为程序试图使用操作系统提供给它的每个调度周期来执行一些代码)。
尽管流程总是运行时,它们在大多数情况下不会使用 100% 的 CPU,因为进程可以等待特定事件/中断发生,或者已指示操作系统短时间内暂停/休眠其操作。