开发者社区> 问答> 正文

子进程分父进程时间片的问题

在书上看到一段这样的话:

在kernel 2.6中时间片的计算是分散的,具体的计算时间可以用task_timeslice(),也可以用其他方法。

a.进程创建时,将父进程的时间片分一半给子进程,同时父进程的时间片减半。

b.进程用完时间片以后,需要重新计算时间片,并将进程插入到相应的运行队列。

c.进程退出时,根据first_timeslice的值来决定是否将子进程的时间片返还给父进程。
疑问:对于a,子进程的时间片是从父进程那里分得的,也就是说其实父进程也是有时间去完成子进程的任务,那干脆就不用创建子进程咯。子进程分父进程的时间片,那又何来创建进程可以增加机器的并行性呢?

对于b,这个“重新计算时间片”是不是摆脱了子进程从父进程那里分得时间片的限制,父子进程的时间片是否还有着某种关系呢?

对于多核的机器,子进程和父进程的时间片划分又是怎么样的呢?多核间如何协调时间片的长短?

展开
收起
a123456678 2016-06-17 14:52:26 2106 0
2 条回答
写回答
取消 提交回答
  • 将父进程的时间片分一半给子进程,同时父进程的时间片减半。

     早就不是这样了, 不用纠结这个了.

    对于b,这个“重新计算时间片”是不是摆脱了子进程从父进程那里分得时间片的限制,父子进程的时间片是否还有着某种关系呢?

     这里说的只是第一次分配时间片时是这样, 这第一次分配的用光了之后后边就是根据这个进程自己的权重什么的重新计算出来的, 就和父亲没关系了.

    2019-07-17 19:42:45
    赞同 展开评论 打赏
    1. 多进程必然占用较多资源,大那师们搞出这样的设计干什么?因为不同的进程可以执行不同类型的任务,比如,一个在访问磁盘,一个在处理TCP链接,互不相干,多进程最擅长这样的领域。
    2. 肯定要摆脱父进程,推理一下就行了,OS不会这么笨,资源只有在被合理使用时才有价值(又想吐槽给手机贴膜的人了)。
    3. 时间片怎么分?不同的OS有不同的算法,有的尽量公平,有的分轻重缓急,保证尽快完成任务的算法就是好算法。另外,只有多核才能实现真正的并行,也就是说,就算两个进程类型一致,就是同时都要使用CPU也不怕,反正有两个以上的核心给它们分着用,同时用。
    2019-07-17 19:42:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载