免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: nqdgj2007
打印 上一主题 下一主题

什么时候改变父进程的slice的 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-12-29 13:21 |只看该作者
原帖由 nqdgj2007 于 2008-12-29 12:48 发表
呵呵 我看了2.6.24代码 但是实在找不到

楼上大部分谈论的都是和ULK关联,2.6.11的代码,我也认为是第一次平分,如果父进程为0则特殊处理,以后就一一样了。

论坛徽章:
0
32 [报告]
发表于 2008-12-29 15:57 |只看该作者
在2.6.24版本中大概是这样的 对于普通进程并不是通过time_slice来修改时间片的 而是通过sched_entity来控制运行时间的
在do_fork中的sched_fork调用set_task_cpu来实现的
具体操作在这里:
static inline void set_task_cfs_rq(struct task_struct *p, unsigned int cpu)
{
        p->se.cfs_rq = task_group(p)->cfs_rq[cpu];
        p->se.parent = task_group(p)->se[cpu];
}

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
33 [报告]
发表于 2008-12-29 16:52 |只看该作者

回复 #32 nqdgj2007 的帖子

没明白这个地方为什么修改了时间片

论坛徽章:
0
34 [报告]
发表于 2008-12-29 17:05 |只看该作者
现在版本的linux内核 不是修改时间片的 而是修改运行队列里面的clock和delta_exec 来改变运行时间的

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
35 [报告]
发表于 2008-12-29 17:09 |只看该作者

回复 #34 nqdgj2007 的帖子

你指的是一个运行队列里面的clock,标识了这个队列进程的时间片?
晚上回去看看,白天没时间研究,怕问得太弱了

论坛徽章:
0
36 [报告]
发表于 2008-12-29 17:14 |只看该作者
这个不是时间片 这个是某个实际时间的片段内运行

论坛徽章:
0
37 [报告]
发表于 2008-12-29 17:18 |只看该作者
我只是提供参考 这些东西涉及到CFS机制   希望哪位熟悉CFS的人出来讲一讲  这个是2.6.11版本以后新加的

论坛徽章:
0
38 [报告]
发表于 2008-12-29 17:55 |只看该作者
2.6.11到2.6.26,CFS部分还有不少改动,建议搂主如果要看的话,还是参考最新的内核代码吧。

如果楼主把CFS部分研究清楚了,不妨给大家分享一下,呵呵。

论坛徽章:
0
39 [报告]
发表于 2008-12-29 18:09 |只看该作者
呵呵 一定一定
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP