免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2861 | 回复: 4
打印 上一主题 下一主题

[内核入门] 小白问题求科普--什么是CPU忙和空闲? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-27 16:45 |只看该作者 |倒序浏览
本帖最后由 BrytonLee 于 2012-09-27 16:46 编辑

平常我们看一个机器的负载看load,假设我们有一个4核的CPU, load为2,这个时候是不是其中两个CPU为忙,另外2个CPU空闲,但是对与CPU而言,忙和不忙有什么区别,难道忙的时候是在执行进程指令,不忙就是在idle,可是我们知道idle时候也是有0号进程在执行, 0号进程执行的指令也是CPU在执行,虽然0号进程一直在找可以执行的进程, 但对于CPU而言都是执行指令,如何区别忙与不忙?求科普, 本质的区别在什么地方? 

论坛徽章:
0
2 [报告]
发表于 2012-09-27 17:21 |只看该作者
其他的不清楚, 不过有个 pause 指令,  可以指示cpu放松一下^_^

cpu执行 pause指令应该会自动降低功耗,idle进程可以一直在那里执行pause指令吧.
应该还有其他办法了,不然 intel的睿频加速怎么弄啊!

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
3 [报告]
发表于 2012-09-27 19:49 |只看该作者
pause? x86只听过个halt啊

这个问题我最近也在找答案

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
4 [报告]
发表于 2012-09-27 22:30 |只看该作者
有pause的。一般CPU都有类似指令可以让自己陷于低能耗状态。即使是noop耗电量也可能降底。我记得GCC有个优化,把noop换成一个很长很复杂又完全没有副作用的指令,据说是因为执行这种长指令比反复执行noop省电。

总之会有某种省电的方法,idle之时便有用武之地。现在还实现了‘‘当CPU idle时不要让它被时钟中断吵醒’’的功能。

论坛徽章:
0
5 [报告]
发表于 2012-09-28 16:19 |只看该作者
smalloc 发表于 2012-09-27 19:49
pause? x86只听过个halt啊

这个问题我最近也在找答案


嗯,应该是halt指令,halt指令使CPU进入空闲状态。我查看了内核在start_kernel之后调用的cpu_idle()的代码,里面调用到native_safe_halt(), native_safe_halt()就两条指令
sti
hlt

sti就开中断,我们来看下hlt指令(摘自Intel指令手册):
Description
Stops instruction execution and places the processor in a HALT state. An enabled
interrupt (including NMI and SMI), a debug exception, the BINIT# signal, the INIT#
signal, or the RESET# signal will resume execution. If an interrupt (including NMI) is
used to resume execution after a HLT instruction, the saved instruction pointer
(CS:EIP) points to the instruction following the HLT instruction

综上可以看到,kernel进程调度器在发现没有进程要调度的时候把cpu通过hlt指令切入空闲状态,但是在进入之前开启了中断,所以当有中断输入的时候CPU又回到之前的状态。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP