31进程管理32进程调度33调度性能的评价34常用调度算.pptVIP

31进程管理32进程调度33调度性能的评价34常用调度算.ppt

  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文档。上传文档
查看更多
操作系统讲义 3.4.2 时间片轮转法 时间片轮转法(RR)主要用于分时系统中的进程调 度。系统把所有就绪进程按先入先出的原则排列成 一个队列。新来的进程加到就绪队列末尾。每当执行 进程调度时,进程调度程序总是选出就绪队列的队首 进程,让它在CPU上运行一个时间片的时间。当进程 用完给它的时间片后,调度程序便停止该进程的运行, 并把它放入进程队列的末尾,然后,把CPU分给就绪队 列的队首进程。 平均周转时间T=18.5 平均带权周转时间W=3.14 3.33 20 20 3 6 0 D 3.67 11 11 2 3 0 C 3.4 17 17 1 5 0 B 2.17 26 26 0 12 0 A 时间片 q=1 带权周转时间 周转 时间 完成 时间 开始时间 运行时间 到达时间 进程名到达时间 平均周转时间T=19.75 平均带权周转时间W=3.38 3.67 22 22 11 6 0 D 3.67 11 11 8 3 0 C 4 20 20 4 5 0 B 2.17 26 26 0 12 0 A 时间片 q=4 带权周转时间 周转 时间 完成 时间 开始时间 运行时间 到达时间 进程名到达时间 ??? 利用优先级调度算法进行进程调度时,是 从就绪队列中选出优先级最高的进程,把 CPU分配给它使用。 ??? 可分为两种处理方法:非强占式优先级 法、强占式优先级法。 3.4.3 优先级法 (1) 非抢占式优先级法: 当前占用CPU的进程一直运 行下去,直到完成任务或者 等待某事件而主动让出CPU时,系统才让 另一个优先级高的进程占用CPU。 (2)抢占式优先级法 当前进程在运行过程中,一 旦有另一个优先级更高的进 程出现在就绪队列中,进程 调度程序就停止当前进程的运行,强行将 CPU分给那个进程。 进程优先权可由系统内部定义或外部指定。 内部决定优先级是利用某些 可度量的量来定义一个进程 的优先级。 外部优先级是按操作系统以外的标准设置的。 两种确定进程优先级的方式: 静态方式和动态方式 (1)静态优先级是在创建进 程时就确定下来的,而且在进程的整个运行 期间保持不变。 优先级:一般利用某一范围内的一个整数 表示,表示优先级的整数也称优先数。 (2)动态优先级是随着进程的推进而不断 改变的 3.4.4 其他调 度算法简介 1、短作业优先级法(SJF) 从作业的后备队列中挑选那些需要运行时间 (估计值)最短的作业放入内存。 2、最短剩余时间优先法 采用抢占式策略,当进程加入就绪队列时, 如果它需要的运行时间比当前运行的进程 所需的剩余时间还短,则运行进程被强行剥 夺CPU的控制权,新进程被调度去运行。 3、多级队列法 根据作业的某些特性,如占 用内存大小和作业类型等,永久性地把各 个作业分别链入不同地队列,每个队列都 有自己的调度算法。 4、多级反馈队列法 在多级队列法的基础上加进“反馈”措施。 3.5 UNIX常用调度 命令及命令执行过程 3.5.1 UNIX系统中的进程调度 采用多级反馈队列轮转法,核心为一个运行进 程分配一个时间片;当时间片用完后,CPU被另外 进程抢占,而该进程被送回相同优先级队列的末尾, 进行轮转;核心动态调整用户态进程的优先级,进 程所在队列会发生变化,有的进程升级,有的进程 降级。 1、调度时机 进程调用sleep程序; 进程终止; 进程从系统调用返回到用户态时,它并不 是最适于运行的进程(发现“重新调度”标 志被置上); 核心处理完中断后,进程回到用户态,但 存在比它更适于运行的进程。 在执行调度之前,核心必须 确保其数据结构的连贯性,即: 完成所有符合要求的更改;链接好队伍;为防止 其他进程的干扰,要置上相应的封锁标志;解除 不必要的封锁。 2、调度算法 进程调度是由swtch程序实现的, 该程序执行过程可以分为三个阶段: 第一阶段属于当前进程的部分。若当前进程不是 0#进程,则保存当前进程的环境变量;若是0# 进程,则不作这一步。 第二阶段属于0#进程。在就绪队列中选出优先数 最小(优先级最高)且在内存的一个进程,将其 从就绪队列重移出。 第三阶段属于被选中的进程。为它恢复进程,令 其投入运行。 输入:无 输出:无 { If(当前进程不是0#进程) { 保存当前进程的环境变量 恢复0#进程的运行环境 } While(没有进程被选中执行) { For (所有在就绪队列中的进程) 选出优先级别最高且在内存的一个进程; If(没有合适进程可以执行)

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档