在书上看到一段这样的话:
在kernel 2.6中时间片的计算是分散的,具体的计算时间可以用task_timeslice(),也可以用其他方法。
a.进程创建时,将父进程的时间片分一半给子进程,同时父进程的时间片减半。
b.进程用完时间片以后,需要重新计算时间片,并将进程插入到相应的运行队列。
c.进程退出时,根据first_timeslice的值来决定是否将子进程的时间片返还给父进程。
疑问:对于a,子进程的时间片是从父进程那里分得的,也就是说其实父进程也是有时间去完成子进程的任务,那干脆就不用创建子进程咯。子进程分父进程的时间片,那又何来创建进程可以增加机器的并行性呢?
对于b,这个“重新计算时间片”是不是摆脱了子进程从父进程那里分得时间片的限制,父子进程的时间片是否还有着某种关系呢?
对于多核的机器,子进程和父进程的时间片划分又是怎么样的呢?多核间如何协调时间片的长短?
将父进程的时间片分一半给子进程,同时父进程的时间片减半。
早就不是这样了, 不用纠结这个了.
对于b,这个“重新计算时间片”是不是摆脱了子进程从父进程那里分得时间片的限制,父子进程的时间片是否还有着某种关系呢?
这里说的只是第一次分配时间片时是这样, 这第一次分配的用光了之后后边就是根据这个进程自己的权重什么的重新计算出来的, 就和父亲没关系了.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。