如何理解CPU的负载?

王鲲彩 2006-11-08 08:18:10
众所周知,CPU运行基本过程就是取指,译码,执行。当我们接通计算机电源后CPU就开始了他的工作,纵然我们不做任何操作,CPU依然运行着,毕竟有OS啊!那么我们在任务管理器中看到的CPU负载究竟指的什么,别告诉我是CPU的EU放慢了运行速度啊!望知道系统底层运行机理的大侠指点一下。谢了先!
...全文
946 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2006-11-10
  • 打赏
  • 举报
回复
//多谢楼上的解释,也就是说至少在WIN下,CPU也是无时无刻不在全速运行,这样理解对吗?

一般情况下是这样的


但是也有例外:比如CPU降温软件就是利用hlt指令实现的
火雲邪神 2006-11-10
  • 打赏
  • 举报
回复
How to calculate CPU utilization

http://www.embedded.com/showArticle.jhtml?articleID=23900614

from Peter
王鲲彩 2006-11-08
  • 打赏
  • 举报
回复
microyzy(毛毛叉) :
比如cpu每秒能运行xxx条指令,当前虽然在运行,但是每秒只运行不到百分之三十的指令,这时候自然说cpu就闲着咯,或者负载很小。。。


难道CPU在这70%中是“悬空”,什么都不做?

各位大侠,小弟问这个问题的出发点是基于以下事实:CPU执行完当前指令后,硬件机构自动指出下条指令让CPU执行(比如:IP自动往下跳)。这样一来,从宏观全局的观点看CPU应该是无时无刻不在执行指令,那么从这一点出发CPU的负载应是100%。但从任务管理器中看到的CPU负载有高有底,这就使我不太理解负载的涵义。所以还望各位大侠指点。谢谢!
zoologist 2006-11-08
  • 打赏
  • 举报
回复
在任务管理器中看到的CPU负载是操作系统层次的。

这样的话,

1:有些操作,操作系统不想让你看到,于是不计算到负载中,

所以有时候系统很慢,但是你打开任务管理器却发现占用率很低;

2: 有些硬件操作执行的代码,操作系统都看不到。

microyzy 2006-11-08
  • 打赏
  • 举报
回复
就是看xpu是闲着,还是忙着,还是非常忙,呵呵
比如cpu每秒能运行xxx条指令,当前虽然在运行,但是每秒只运行不到百分之三十的指令,这时候自然说cpu就闲着咯,或者负载很小。。。

至于cpu在闲着的时候是不是放慢运行速度,这个看cpu本身有没有这个功能了
大熊猫侯佩 2006-11-08
  • 打赏
  • 举报
回复
什么意思?是计算的cpu当前的使用情况吧。具体是怎么算的要看计算fuc
到底是以什么为准来编写的。
王鲲彩 2006-11-08
  • 打赏
  • 举报
回复
多谢楼上的解释,也就是说至少在WIN下,CPU也是无时无刻不在全速运行,这样理解对吗?
zyl910 2006-11-08
  • 打赏
  • 举报
回复
打开任务管理器,有一个进程叫“System Idle Process”

所谓的CPU负载 = 100% - “System Idle Process”进程的CPU占用率


当其他进程不占用CPU时,Windows系统将剩余的CPU时间片都分配给“System Idle Process”进程,让它浪费CPU资源。
(因为除了在HALT模式下等待中断外,CPU都处于全速运行状态,为了使它连续工作就得提供指令)

该进程有两大作用:
一、循环检测计时器硬件,发现时间到了就立即相应操作(设置同步对象,执行线程上下文切换,让激活的程序获得CPU)。这样能实现比时间中断(NT下默认为10ms)更精确地计时操作。
二、回收内存页面

这就是为什么Windows系统为什么没有使用HALT模式的原因
microyzy 2006-11-08
  • 打赏
  • 举报
回复
这个。。。俺一点也不懂
王鲲彩 2006-11-08
  • 打赏
  • 举报
回复
多谢楼上的回答,
能否请microyzy(毛毛叉)介绍一下HALT模式的特点,难道是CPU的晶体管处于底电流状态吗?
谢谢!
microyzy 2006-11-08
  • 打赏
  • 举报
回复
看了下,在没有可执行的任务时,一般系统会执行HALT指令,此时cpu进入halt模式,就不再执行指令了(CS:IP的值不变),cpu就空闲了,知道有东西激活cpu重新回来工作,例如中断什么的
microyzy 2006-11-08
  • 打赏
  • 举报
回复
你基于的这个事实,只是在有指令的时候,如果接下来没有指令了呢?cpu不就闲下来了吗?呵呵

至于cpu闲下来会怎样,干些什么,这个。。。请硬件高手告诉下咯,据我的所知,windows系统是不会有这种情况的,闲下来的时候cpu好像是循环执行NOP指令,等待新任务(好像是那个ID是0的进程),好久前看的,记不清楚。。。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧