- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux内核源代码分析-进程管理和调度
进程管理、调度;进程管理的任务;进程模块与其他模块的依赖关系在整个内核中的功能位置和源码依赖关系 ;进程模块与其他模块的依赖关系进程调度模块的内外界面 ;进程模块与其他模块的依赖关系进程调度模块和其他模块的相互依赖关系 ;进程描述符及任务队列;进程描述符及任务队列;进程描述符及任务队列;进程描述符及任务队列;进程描述符及任务队列;进程的创建(FORK,copy-on-write);进程的创建(FORK,copy-on-write);进程的创建(FORK,copy-on-write);进程的创建(FORK,copy-on-write);进程的创建(FORK,copy-on-write);线程实现;进程的终止;进程的终止;进程调度;进程调度;进程调度;进程调度;进程调度;进程调度;上面已经提到,每个 CPU 上维护了两个就绪队列,active 和 expired。一般情况下,时间片结束的进程应该从 active 队列转移到 expired 队列中(schedule_tick()),但如果该进程是交互式进程,调度器就会让其保持在 active 队列上以提高它的响应速度。这种措施不应该让其他就绪进程等待过长时间,也就是说,如果 expired 队列中的进程已经等待了足够长时间了,即使是交互式进程也应该转移到 expired 队列上来,排空 active。这个阀值就体现在EXPIRED_STARVING(rq) 上:在 expired_timestamp 和 STARVATION_LIMIT 都不等于 0 的前提下,如果以下两个条件都满足,则 EXPIRED_STARVING() 返回真:
(当前绝对时间 - expired_timestamp) = (STARVATION_LIMIT * 队列中所有就绪进程总数 + 1),也就是说 expired 队列中至少有一个进程已经等待了足够长的时间;
正在运行的进程的静态优先级比 expired 队列中最高优先级要低(best_expired_prio,数值要大),此时当然应该尽快排空 active 切换到expired 上来。
;进程调度;进程调度;进程调度;核心将 100~139 的优先级映射到 200ms~10ms 的时间片上去,优先级数值越大,则分配的时间片越小。
和 2.4 中进程的缺省时间片比较,当 nice 为 0 时,2.6 的基准值 100ms 要大于 2.4 的 60ms。;2) time_slice 的变化
进程的 time_slice 值代表进程的运行时间片剩余大小,在进程创建时与父进程平分时间片,在运行过程中递减,一旦归 0,则按 static_prio 值重新赋予上述基准值,并请求调度。时间片的递减和重置在时钟中断中进行(sched_tick()),除此之外,time_slice 值的变化主要在创建进程和进程退出过程中:
a) 进程创建和 2.4 类似,为了防止进程通过反复 fork 来偷取时间片,子进程被创建时并不分配自己的时间片,而是与父进程平分父进程的剩余时间片。也就是说,fork 结束后,两者时间片之和与原先父进程的时间片相等。
b) 进程退出进程退出时(sched_exit()),根据 first_time_slice 的值判断自己是否从未重新分配过时间片,如果是,则将自己的剩余时间片返还给父进程(保证不超过 MAX_TIMESLICE)。这个动作使进程不会因创建短期子进程而受到惩罚(与不至于因创建子进程而受到奖励相对应)。如果进程已经用完了从父进程那分得的时间片,就没有必要返还了(这一点在 2.4 中没有考虑)。;3)time_slice 对调度的影响
在 2.4 中,进程剩余时间片是除 nice 值以外对动态优先级影响最大的因素,并且休眠次数多的进程,它的时间片会不断叠加,从而算出的优先级也更大,调度器正是用这种方式来体现对交互式进程的优先策略。但实际上休眠次数多并不表示该进程就是交互式的,只能说明它是 IO 密集型的,因此,这种方法精度很低,有时因为误将频繁访问磁盘的数据库应用当作交互式进程,反而造成真正的用户终端响应迟缓。
2.6 的调度器以时间片是否耗尽为标准将就绪进程分成 active、expired 两大类,分别对应不同的就绪队列,前者相对于后者拥有绝对的调度优先权--仅当active 进程时间片都耗尽,expired 进程才有机会运行。但在 active 中挑选进程时,调度器不再将进程剩余时间片作为影响调度优先级的一个因素,并且为了满足内核可剥夺的要求,时间片太长的非实时交互式进程还会被人为地分成好几段(每一段称为一个运行粒度,定义见下)运行,每一段运行结束后,它都从 cpu 上被剥夺下来,放置到对应的 active 就绪队
您可能关注的文档
- 2015年职称审查问题和2016注意事项.ppt
- 2015年河北省高中历史优质课:《“一国两制”伟大构想和其实践》.ppt
- 2015年省级青年文明号培训-创号基础实务和成果申报.ppt
- 2015年重点工作和2016年思路和工作重点措施.doc
- 2015年高压电工证考试试题和解答17.doc
- 2015年长春中考语文试题和和答案.doc
- 2015年造价工程师《建设工程技术和计量》(土建)真题和答案.pdf
- 2015年领导干部网上学法用法习题和答案.doc
- 2015年造价工程师考试《建设工程计价》真题和答案解析.pdf
- 2015年高考山东卷文综政治和参考答案.doc
- 裁判员考前冲刺试卷及完整答案详解【精选题】.docx
- 裁判员考前冲刺试卷及完整答案详解【易错题】.docx
- 裁判员考前冲刺试卷及参考答案详解(达标题).docx
- 咨询员工作总结.pptx
- 裁判员考前冲刺试卷及参考答案详解(综合卷).docx
- 工程思维在建模实践中的重要性与应用.docx
- 绿色化学实验在高中化学教学中的实验课程改革与实施策略教学研究课题报告.docx
- 初中地理教学案例:校园雨水收集系统在城市雨水利用中的实践与推广教学研究课题报告.docx
- 实践共同体视角下,教师数字素养提升的培训效果分析与改进策略教学研究课题报告.docx
- 小学图书馆个性化服务满意度与阅读推广效果分析教学研究课题报告.docx
文档评论(0)