免费注册 查看新帖 |

Chinaunix

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

linux内核设计与实现之不解-还望指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-18 09:32 |只看该作者 |倒序浏览
第四章:
4.2.5 计算优化级和时间片

有一段这样写到:
调度程序还提供了另外一种机制以支持交互进程:如果一个进程的交互性非常强,那么当它时间片用完后,它会被放置到活动数组而不是过期数组中,回忆一下,重新计算时间片是通过活动数组与过期数组之间的切换来进行的。一般进程在用尽它们的时间片后,都会被移至过期数组,当活动数组中没有剩余进程的时候,这两个数组就会被交换;活动数组变成过期数组,过期数组替代活动数组。这种操作提供了时间复杂度为O(1)的时间片重新计算。但在这种交换发生之前,交互性很强的一个进程有可能已经处于过期数组中了,当它需要交互的时候,它却无法执行,因为必须等到数组交换发生为止才可执行。将交互式的进程重新插入到活动数组可以避免这种问题。但该进程不会被立即执行,它会和优先级相同的进程轮流着被调度和执行。该逻辑在scheduler_tick()中实现......

本人不解之处:
(1)
1.如果一个进程的交互性非常强,那么当它时间片用完后,它会被放置到活动数组而不是过期数组中.
2.一般进程在用尽它们的时间片后,都会被移至过期数组,当活动数组中没有剩余进程的时候,这两个数组就会被交换;活动数组变成过期数组,过期数组替代活动数组。
第1句中说到,如果一个进程的交互性非常强那么当时间片用完后,它会被放置到活动数组而不是过期数组中。这是否代表如果这么一个进程,那么活动数组中会一直都有进程
第2句说到,       当活动数组中没有剩余进程的时候,这两个数组就会被交换;

出现第1句的情况第2句的功能不是永远不得实现,也就是不会交换数组?

论坛徽章:
0
2 [报告]
发表于 2010-06-18 10:08 |只看该作者
回复 1# funjiang


    所以这种进程会一直以较高的优先级被执行,但是为了公平起见,如果一个进程在非活动集合里面呆了太久了,那么内核也会把交互式进程移到非活动集合里面。
However, the scheduler moves an interactive process that finished its time quantum into the set of expired processes if the eldest expired process has already waited for a long time, or if an expired process has higher static priority (lower value) than the interactive process.
你看的是什么书?第二版的吗

论坛徽章:
0
3 [报告]
发表于 2010-06-18 10:33 |只看该作者
是第二版的,中文版的。我的英文不行。。。不然我一定看原版的。..

论坛徽章:
0
4 [报告]
发表于 2010-06-18 10:42 |只看该作者
回复 3# funjiang


    第三版也有中文版啊,第二版太老了吧,譬如这个调度,第三版都已经过时了。

论坛徽章:
0
5 [报告]
发表于 2010-06-19 10:34 |只看该作者
本帖最后由 funjiang 于 2010-06-19 10:39 编辑

呀...不知道...我是在网上下载的...感谢.我去下载第三版的来看看.


在卓越看了下,没有第三版的,只有第二版的.
你有没有第三版的电子书?可以传给我吗?
非常感谢!
我邮箱:funjiang@qq.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP