进程的 CPU 使用率实际上意味着什么

Dav*_*any 5 cpu cpu-usage process

假设计算机有一个单核 - 进程 A 以 100% CPU 容量与(假设)10% CPU 容量运行究竟意味着什么。

如果 CPU 是 2.0 GHz,这是否意味着在进程 A 的时间片中,处理器每秒执行 20 亿步(如果上限为 100%),但只会执行 2 亿步(如果上限为 10%) )?

什么会导致 100% 情景与 10% 情景?

Bre*_*ugh 8

CPU 使用率由操作系统的进程/任务调度程序计算。实际上,如果 CPU 使用率为 10%,则表示该任务在任务调度器单位周期的 10% 内处于活动状态;其他程序可能会在剩余 90% 的 CPU 时间内运行,否则操作系统将闲置。同样,如果所有程序的CPU 使用率为 10%,则表示系统上 90% 的时间都没有执行任何程序。

由于在多任务操作系统(如 Windows 或 Linux)中没有程序在“裸机”上运行,因此 CPU 使用率是衡量 CPU 周期专用于运行该特定程序的百分比。这就是为什么如果程序中有一个无限循环,即使没有“工作”在做,CPU 使用率仍然接近 100%(因为程序试图使用操作系统提供给它的每个调度周期来执行)一些代码)。

尽管进程始终在运行,但在大多数情况下它们不会使用 100% 的 CPU,因为进程可以等待特定事件/中断发生,或者已指示操作系统暂时暂停/休眠其操作多少时间。

  • @Ramhound 一种不在 [进程调度程序](http://en.wikipedia.org/wiki/Scheduling_%28computing%29) 下运行的程序,即不在多任务操作系统下运行的程序。这在 DOS 中是可能的,但是 Windows 本身会安排运行该特定代码的时间以及运行时间(它将中断进程,并允许更多进程继续运行,直到您的进程再次“转向”)。 (2认同)