Linux操作系统课程指导Ch4-进程调度.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

进程调度

进程调度?调度程序负责决定哪个进程投入运行,和试运行以及运行多长时间?只有通过合理的调度,系统资源才能最大限度的发挥作用?最大限度发挥作用的基本原理:只要有可以执行的进程,就一定有进程在执行。2022/4/21LiangShi:LinuxOperatingSystems2

Outline?多任务?Linux的进程调度?策略?Linux调度算法?Linux调度实现?抢占和上下文切换?实时调度策略?与调度相关的系统调用?小结2022/4/21LiangShi:LinuxOperatingSystems3

多任务?多任务系统就是能同时并发的交互执行多个进程的操作系统。?可以划分为两类:非抢占式(CooperativeMultitasking),抢占式(PreemptiveMultitasking)?非抢占式:问题很多,进程主动让出,导致进程容易长时间占用CPU。?抢占式:调度程序决定什么时候抢占,采用时间片段的方式决定每个进程运行的时间,避免系统独占(Linux和Unix默认的方式)2022/4/21LiangShi:LinuxOperatingSystems4

Linux的进程调度?Linux第一版到2.4版的调度器非常简陋,存在很多无法扩展的问题。?2.5版引入了O(1)调度器,能够实现扩展,静态计算时间片和每个CPU设置调度队列?2.6引入和完全公平调度策略(CFS–CompleteFairQueueing),解决了O(1)算法对交互式应用的低响应问题。?CFS有一段不堪的历史。。。。。2022/4/21LiangShi:LinuxOperatingSystems5

策略?策略policy与机制mechanism:策略是指方法,怎么做,机制是指提供的功能,能做什么事情。?IO消耗型和处理器消耗型进程?如何区别对待这两种类型的调度策略??如何划分这两种类型的进程??进程响应速度vs.最大系统利用率?Linux优先考虑IO消耗型,从而提供较好的交互性?进程优先级?思想:高优先级优先而且时间片长,低优先级相反?Linux采用两种不同优先级范围:NICE值,实时优先级。2022/4/21LiangShi:LinuxOperatingSystems6

策略?时间片?既不能过大也不能过小?要考虑IO密集型和CPU密集型?要考虑优先级?Linux才行处理器时间比作为时间片计算,调度是根据消耗的CPU时间比确定是否抢占?调度策略的活动?考虑以下场景:文本编辑器和视频编码器同时工作?文本编辑器(IO密集,要求响应快)?视频编码器(计算密集,要求尽快完成)?Linux采用CPU时间比的方式确定调度和时间片2022/4/21LiangShi:LinuxOperatingSystems7

Linux调度算法?调度器类?Linux有多种调度器,可以根据需求设置不同的调度器,不同调度器有不同优先级,构建一个调度器类。?Unix系统中的进程调度?进程优先级和时间片?NICE值到护理期的绝对时间?相对NICE值?时间片的精度?优化交互式应用?存在的问题:固定切换频率导致的公平性损伤2022/4/21LiangShi:LinuxOperatingSystems8

Linux调度算法?公平调度?进程调度的效果应如同系统具备一个理想中的完美多任务处理器,在这种系统中,每个进程将获得1/n的处理器时间,n是指可运行进程数量?CFS允许每个进程运行一段时间,轮询调度,每次选择运行最少的进程作为下一个运行。?时间片的计算依赖于进程数量,NICE仅作为权重使用。?CFS依赖于两个参数:一个是调度周期,一个是最小时间片粒度?举例:NICE:0/5vs.10/15,目标延迟:20ms2022/4/21LiangShi:LinuxOperatingSystems9

Linux调度算法?公平调度?相对值决定时间片长度?Nice仅仅用于加权,而不是算数?时间片是CPU使用比?确保了公平性?并不完美。。。。2022/4/21LiangShi:LinuxOperatingSystems10

Linux调度的实现?Kernel/sched_fair.c?时间记账?进程选择?调度器入口?睡眠和唤醒2022/4/21LiangShi:LinuxOperatingSystems11

时间记账虚拟实时,存放进程的虚拟运行时间。task_struct2022/4/21LiangShi:LinuxOperatingSystems12

进程选择?当CFS需要选择下一个运行进程时,它会挑选一个具有最小vruntime的进程?通过红黑树的方式组织所有运行进程,每次从红黑树中找出最小vruntime的进程(红黑树使用vrun

文档评论(0)

192****6062 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档