- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完全公平调度器
完全公平调度器
完全公平调度器(CFS)的设计思想是:在一个真实的硬件上模型化一个理想的、精确的多任务CPU。该理想CPU模型运行在100%的负荷、在精确平等速度下并行运行每个任务,每个任务运行在1/n速度下,即理想CPU有n个任务运行,每个任务的速度为CPU整个负荷的1/n。
由于真实硬件上,每次只能运行一个任务,这就得引入虚拟运行时间(virtual runtime)的概念,虚拟运行时间为一个任务在理想CPU模型上执行的下一个时间片(timeslice)。实际上,一个任务的虚拟运行时间为考虑到运行任务总数的实际运行时间。
所以,一堆进行都运行了一段时间delta,那么它们的vrumtime就遵循上面的公式。很明显,优先级最大的进程vrumtime增量最小。。。
2 操作细节
cfs就是通过追踪这个vruntime来进行任务调度的。它总是选 vruntime最小的进程来运行。
3 红黑树。
红黑树这个数据结构在内核里用得还不少嘛,不过俺不太懂。哪位兄弟给扫扫盲 hrtimer里也用到了red-black-tree。这里把进程的vruntime用rb-tree来存储。
4 一些feature
cfs has no time-slice concept.o(1)有的,cfs没有明显得用,它偷偷摸摸地用。呵呵 翻译完这几段咱再说这个。文档里面那个接口估计是用来调整最小粒度的。用于桌面和服务器两 种不同的调度。后者可能不太希望频繁的调度,浪费时间。前者则希望面面俱到--不患寡妇而患不均也
在CFS中,虚拟运行时间由每个任务的p-se.vruntime值(ns为单位)跟踪。在理想的硬件上,在任何时间,所有的任务将有同样的p-se.vruntime值,任务将同时执行,并且,没有任务会从CPU理想的分享时间中变成负载不平衡。
CFS的任务选择逻辑基于p-se.vruntime值,并且它总是尝试运行拥有最小p-se.vruntime值的任务。CFS总是尝试在可运行的任务之间分离出CPU时间,让该时间尽可能地接近理想的多任务硬件。
CFS的大多数设计仅仅为了兑现这个简单的概念,另外还加一些点缀,如:nice级、多进程和各种认知睡眠者的算法变量。
红黑树
CFS设计的亮点是没有使用运行队列的旧数据结构,而是用时间排序的红黑树(rbtree),该树构建了一个将来任务执行的时间线(timeline),这样,不需要数组切换的人为干预。
CFS还维护rq-cfs.min_vruntime值,该值是一个单调的递增值,跟踪运行队列所有任务中的最小虚拟运行时间。系统所做的工作总量用min_vruntime跟踪,该值用于尽可能地放置新激活的实体到树的左侧。
运行队列中正运行任务的总数用rq-cfs.load value计算,它是运行队列上排队的任务 的权重的总和。
CFS维护时间排序的红黑树(rbtree),树上所有可运行的任务由p-se.vruntime作为键值排序,CFS从树中选择最左边的任务执行。考虑到外围影响,p-se.vruntime会减去rq-cfs.min_vruntime。
随着系统向前运行,已执行的任务被更多地放入树的右边,但每个任务有机会成为最左边的任务而得到CPU的执行。
总结一下,CFS的工作机制是:它任务一个任务的一小部分,当任务调度时,任务的CPU使用会考虑:它刚使用CPU花费的时间被加到p-se.vruntime上。一旦p-se.vruntime值足够高,使得另一个任务成为时间排序树的最左边任务(加上一点相对最左侧任务的间隔距离,以便不会过调度任务并将高度缓存变为垃圾)时,新的最左边任务被选择,并抢占了当前任务。
CFS使用ns颗粒计算,不依赖于任何jiffies或其他的HZ细节。这样,CFS调度器没有时间乍的概念,仅有一个中心的调整,用户必须切换到CONFIG_SCHED_DEBUG配置下编译才可,调整如下常量:
/proc/sys/kernel/sched_min_granularity_ns
这将可被用来从桌面(如:低延迟)到服务器(如:较好的成批处理)工作负载调整调度器。缺省下设置为桌面负载。SCHED_BATCH也被 CFS调度器模块处理。
由于它的设计,CFS调度器不易于受到攻击,如:现存在的对stock调度器的启动发式攻击文件fiftyp.c, thud.c, chew.c, ring-test.c, massive_intr.c在CFS下工作良好,并不影响交互性和产生期望的攻击行为。
CFS调度器处理nice级和SCHED_BATCH比以前的vanilla调度器更加强壮:两类工作负载被隔离。
SMP负载平衡工作更好更简洁:工作队列的遍历消耗已从负载平衡代码中删除,
您可能关注的文档
- 图例和符号.doc
- 土木类翻译.doc
- 土木工程施工之防水工程.doc
- 圣城家园电影迅雷快传大合集MKV-3.doc
- 在新课改下创建和谐课堂教学的几点思考.doc
- 在烤瓷牙制作中如何取一个肩台清晰的印模.doc
- 地下城剑魂心得.doc
- 地震信息填什么.doc
- 垃圾发电必备知识.doc
- 垃圾处理技术试题.doc
- 2026年及未来5年蓝信流量统计日志系统项目市场数据调查、监测研究报告.docx
- 2026年及未来5年多功能烟气分析仪项目市场数据调查、监测研究报告.docx
- 2026年及未来5年热熔焊制45°弯头项目市场数据调查、监测研究报告.docx
- 2025年学历类自考中国文化概论-中国当代文学作品选参考题库含答案解析.docx
- 2026年及未来5年微控双温区锑扩散系统项目市场数据调查、监测研究报告.docx
- 2026年及未来5年变频电机转子项目市场数据调查、监测研究报告.docx
- 2026年及未来5年数显压力机项目市场数据调查、监测研究报告.docx
- 2026年及未来5年电话十台灯十时钟项目市场数据调查、监测研究报告.docx
- 2026年及未来5年移动空调控制板项目市场数据调查、监测研究报告.docx
- 2026年及未来5年大豆纤维服饰项目市场数据调查、监测研究报告.docx
最近下载
- DB62T 3207-2021 黄土地区边坡柔性支挡结构抗震设计.docx VIP
- 合工大R语言期末测试题答案.pdf VIP
- 车辆维修和保养服务项目方案投标文件(技术方案).doc
- 国家职业技能标准 (2019年版) 企业人力资源管理师(可复制版).pdf
- 车辆维修和保养服务框架协议采购方案投标文件(技术方案).doc
- 【2025年】放射工作人员放射防护培训考试题及答案.docx VIP
- 车辆维修采购项目方案投标文件(技术方案).doc
- 2025年电大人文英语3until1until8边学边练.pdf VIP
- 医疗健康管理与人工智能.pptx VIP
- 新一代N型高效太阳能电池项目商业模式分析报告.docx VIP
原创力文档


文档评论(0)