gpt4 book ai didi

linux - 操作系统如何实际测量 CPU 功率?

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:33 36 4
gpt4 key购买 nike

目前我认为处理器只有两种状态:运行和不运行。如果它正在运行,它将使用其全部功能来处理任务。如果有多个进程,进程会共享一部分CPU。

算力如何分“份”?那么,假设一个 CPU 有 100 万个晶体管,如果 CPU 只有 50%,那么只有一半的晶体管被​​使用?

或者这与每个进程分配的处理时间有关吗?即假设“100%”意味着一个进程占用 CPU 200 毫秒,如果一个进程的默认 nice 值(优先级值)为 0,则意味着该进程将获得 50% 的计算能力,换句话说,100 毫秒。什么是正确的想法?

最佳答案

让我以 Intel x86 CPU 和 Windows NT(及其衍生产品)为例进行解释。这些操作系统的内置系统进程之一是系统空闲进程。这个过程表示操作系统的“空闲循环”使用了多少 CPU 时间。该空闲循环除了执行 CPU 的 HLT 指令外什么都不做。该指令反过来命令 CPU 在下一个中断到来之前什么都不做。

因此,如果调度程序确定在给定时刻没有需要 CPU 时间的进程,则会将其分配给系统空闲进程。如果说,在最后 n 秒内 99% 的时间都花在了“执行”该进程上,这意味着在这 n 中 CPU 的实际利用率仅为 1% em> 秒。

我相信它与 Linux 完全相似,只是它没有单独的进程来模拟 CPU 的“闲置”。

旁注:当然,有一个操作系统根本不执行 HLT 指令是可能的。 Windows 98 及更早版本(显然包括 MS-DOS)就是这种情况,其空闲循环仅由 jmp $ 组成。这导致 CPU 使用更多的功率。

关于linux - 操作系统如何实际测量 CPU 功率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942112/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com