- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OS第4章调度(MR)讲述
* 最早截止时间优先调度算法 最早截止时间优先调度算法(Earliest Deadline First—EDF)是一种以满足用户要求的时限为调度原则的算法。在实时系统是的用户要求时限有处理开始时限和处理结束时限。 时限调度算法所需要输入信息有: 任务就绪时间或事件到达时间 开始时限 完成时限 处理时间 资源需求 优先级 * 最早截止时间优先调度算法 例:设实时系统从两个不同的数据源DA和DB周期性地收集数据并进行处理,其中DA的时限为30ms为周期,DB的时限要求以75ms为周期。设DA所需处理时限为15ms,DB所需处理时限为38ms,则与DA和DB有关进程的事件发生时限、执行时限及结束时限 * 最早截止时间优先调度算法 图 最早截止时间优先调度算法给出的调度顺序 如果使用最早截止时间优先调度算法,并按最近结束时限优先级最高的方法进行排列,有下图: 4.9 UNIX/Linux进程调度 4.9.1 UNIX进程调度 采用多级反馈队列轮转法 进程调度时机 ①调用sleep程序 ②进程终止 ③进程从系统调用返回到用户态时,但它并不是最适宜运行的进程 ④核心处理完中断后,进程回到用户态,但存在更适宜运行的进程 * Linux 进程调度 调度方式 Linux内核的调度方式基本上采用“抢占式优先级”方式, 即当进程在用户模式下运行时,不管是否自愿, 在一定条件下, 核心就可以暂时剥夺其运行而调度其他进程进入运行。 * 表 调度策略标志 调度策略标志 调度算法 SCHED_RR 用于实时进程,基于优先级的轮转法 SCHED_FIFO 用于实时进程,基于优先级的先进先出算法(抢占式) SCHED_OTHER 用于普通进程,基于多级反馈调度算法 Linux 进程调度 * Windows 中线程的调度 线程调度特征: 处理机调度是严格针对线程队列进行的,不考虑被调度线程属于哪个进程的。例如:进程P有5个可运行的线程,进程Q有2个可运行的线程,如果这7个线程的优先级相同,则每个线程将得到1/7的处理机时间。 Windows 的处理机调度对象是线程,进程仅作为资源对象和线程运行环境的提供者。 Windows 2003实现了一个基于优先级抢占式的多处理器调度系统,系统总是运行优先级最高的就绪线程。 * Windows 中线程的调度 当一个线程被调度进入运行状态时,它可运行一个被称为时间配额的时间单位。时间配额是允许一个线程连续运行的最大时间总和,随后系统会中断线程的运行,判断是否需要降低该线程的优先级,并查找是否有其他高优先级或相同优先级的线程等待运行。 由于系统具有抢占式调度特征,因此,一个线程的一次调度执行可能并没有用完它的时间配额。如果一个高优先级的线程进入就绪状态,当前运行的线程可能在用完它的时间配额前就被抢占。事实上,一个线程甚至可能在被调度进入运行状态之后开始运行之前就被抢走。 * Windows 中线程的调度 线程优先级: Windows 的调度是基于内核级线程的抢占式调度,包括多个优先级层次。在某些层次,线程的优先级是固定的,在另一些层次线程的优先数根据执行的情况动态调整。它的调度策略是一个动态优先数多级反馈队列,每一个优先数都对应于一个就绪队列,而每一个进程队列中的进程按照时间片方式轮转调度。 进程的一个属性是进程基本优先权类型为实时、高级、中上、中级、中下和空闲。 一个进程只有基本优先级,而一个线程有基本优先级和当前优先级两个优先级取值。线程的当前优先级可在一定范围(0~15)内动态变化。系统不调整在实时范围(16~31)内的线程优先级。 * Windows 2000中线程的调度 线程调度的策略: 自愿切换。 抢占。 时间配额用完。 终止。 * 本章小结 处理机的三级调度: 高级调度是作业调度; 中级调度是内外存对换; 低级调度是进程调度; 作业有四个基本状态: 提交状态、后备状态、运行状态、完成状态。 * 本章小结 调度算法的评价准则 周转时间 带权周转时间 作业调度算法和进程调度算法有: 先来先服务算法 轮转法调度算法 多级反馈轮转调度算法 短作业优先调度算法 高响应比优先调度算法 优先级调度算法 非抢占式优先级调度算法 抢占式优先级调度算法 * 复习:作业和进程调度算法 进程名 到达时间 执行时间 优先级 开始执行时间 完成时间 周转时间 带权周转时间 A 0 2 2 B 1 6 1 C 2 1 4 D 3 5 3 优先级调度算法:优先级数大者优先级低 * 先来先服务(FCFS)调度算法 进程名 到达时间 执行时间 开始执行时间 完成时间 周转时间 带权周转时间 A 0 1 B 1 100 C 2 1 D 3 100 0 1 1 1 1 101 100 1
文档评论(0)