免费注册 查看新帖 |

Chinaunix

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

为什么处理器消耗型进程要被惩罚? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-13 18:23 |只看该作者 |倒序浏览
今天看《linux内核设计与实现》,看到这个概念,我不知道是不是我理解错了,请各位指教。

为什么处理器消耗类进程要被惩罚(提高nice值)?
为了提高cpu使用率不是应该让他有更高的优先权么,尤其让处理器在其他进程里无事可做,为什么不给处理器好好工作的机会呢?
如果IO消耗型的占用了90%的处理器时间片,那么处理器的工作效率实在太低了。不是么?

如果说是为了提高交互性,使用当IO事件发生中断处理器的方法不是更好么?

论坛徽章:
0
2 [报告]
发表于 2010-04-13 21:13 |只看该作者
在考虑进程优先级之前,应该先理解进程状态。只有在可执行状态的进程才会被调度。
IO消耗型的进程大部分时间是在等待资源,处于睡眠状态(不是可执行状态)。不管它的优先级多高,它处于睡眠状态时也不会跟其他进程抢CPU。

CPU消耗类进程要被惩罚。于是当资源就位,IO消耗型的进程被唤醒时,CPU消耗类进程应该让位于它。

另外,系统中只要有进程处于可执行状态,CPU就不会无事可做。
以单CPU为例,在某一时刻,如果可执行状态的进程只有一个,CPU就毫无选择地去执行它;如果有多个,则通过进程的优先级、时间片等因素,选择一个进程去执行。

论坛徽章:
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 [报告]
发表于 2010-04-13 23:49 |只看该作者
原因书上已经说了,处理器消耗型都是做的和时间关系不大的运算,什么时候执行完,时间长点还是短点不太重要----当然这个是在PC环境下且是一般情况。

论坛徽章:
0
4 [报告]
发表于 2010-04-14 10:25 |只看该作者
事无巨细,从整体的角度考虑,之所以内核这么做肯定有它的原因:比如,考虑负载均衡,防止饿死,等
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP