动态优先级调度算法的特点与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者简介: 郑镕浩 (1990~) , 女, 山西人, 大学本科生, 联系方式: 电话 15822684029 邮箱 bulovek@163.com
务的时限之前, 那么该任务就会抢先占用当 前的任务。 通常周期任务的最终期限是它下一个 周期开始的时刻。Liu 和 Layland 证明,如 果存在某一种调度能够满足所有的时限要 求, 那那么每一次总是执行当前具有最早时 限的未完成任务就可以满足所有时限的要 求, 并证明了对于一个 n 个周期任务的任务 集 T={t1,t2,t3,„,tn}可以被 EDF 所调度, Ci 为 任 务 执 行 的 时 间 , 当 且 仅 当
作者简介: 郑镕浩 (1990~) , 女, 山西人, 大学本科生, 联系方式: 电话 15822684029 邮箱 bulovek@163.com
低优先级的任务“饥饿” ; 动态优先级方式中,为防止“饥饿” , 根据任务的等待时间调整优先级。 在就绪队 列中,等待时间延长则优先级提高,从而使 优先级较低的任务在等待足够的时间后, 其 优先级提高到可被调度执行。 4. 静态调度算法适用于能够完全把把握系 统中所有任务及其时间约束(如截止时间、 运行时间、 优先顺序和运行过程中的到达时 间)特性的情况。静态调度比较简单,但缺 乏灵活性,不利于系统扩展; 动态调度有足够的灵活性来处理变化 的系统情况,但需要消耗更多的系统资源, 因此适合于任务不断生成, 且在任务生成前 其特性并不清楚的实时系统。 5. 动态调度的出现是为了确保低优先级任 务也能被调度。 这种公平性对于所有任务都 同等重要的系统比较合适, 对于需要绝对可 预测性的系统一般不适用动态调度。 这些系 统中,在出现临时过载的情况下,要求调度 算法能够选择最紧急的任务执行, 而放弃那 些不太紧急的任务。 而动态调度的优先级只 反映了任务的时间特性, 没有把任务的紧急 程度体现到优先级中去。 动态任务的调度代价通常都比静态调 度高, 这主要是由于在每一个调度点都需要 对任务的优先级进行重新计算, 而静态调度 中任务的优先级则始终保持不变, 不需要进 行计算。
调度程序是影响系统性能的重要部分, 在设计调度程序时, 通常需要综合考虑如下 因素: CPU 的使用率(CPU utilization) ; 输入/输出设备的吞吐率; 公平性; 截止时间。 调度程序的设计需要优先考虑最重要的需 求,然后在各种因素之间进行折中处理。 2.2 调度算法概述 对于大量的实时调度方法, 存在几类主 要的划分方法: 根据获得调度信息的时机, 调度算法分 为离线调度和在线调度; 根据任务在运行过程中能否被打断的 处理情况, 调度算法分为抢占式调度和非抢 占式调度; 根据任务优先级的确定时机, 调度算法 分为静态调度和动态调度。 2.3 静态和动态调度特点的比较 1. 在静态调度算法中,所有任务的优先级 在设计时就确定下来了, 且在运行过程中不 会发生变化,一旦确定了调度方案,则该方 案能够确保所有的任务满足时限要求, 即任 务可以被成功调度; 在动态调度算法中, 任务的优先级则在 运行过程中确定,并可能不断地发生变化, 若动态调度方案能够确保所有的任务满足 时限要求,即任务可以被成功调度。 2. 单调速率调度(RMS)算法是一种典型 的静态优先级调度算法, 它根据任务的执行 周期的长短来决定调度优先级, 具有较小的 执行周期的任务具有较高的优先级; EDF 算法是使用最多的一种动态优先级 调度算法, 该算法根据就绪队列中的各个任 务的截止期限(Deadline)给它们来分配优 先级, 具有最早的截止期限的任务具有最高 的优先级。 3. 静态优先级方式中,如果一直有高优先 级的任务出现,则它们一直占用着 CPU,而
务运行。 如果当前有其他的较低优先级任务 正在执行,则该较低优先级任务被抢占,让 位给具有最高优先级的任务执行, 直至就绪 队列中没有高于该作业优先级的作业时, 该 作业恢复执行。调度硬实时周期任务时,因 为同一个周期任务的每次执行的优先级相 对于其他任务可能都不一样, 所以 EDF 是动 态优先级调度算法,具有以下特点: 1) 因为 EDF 算法是根据任务释放时的截止 期来分配任务的优先级,所以 EDF 算法 不仅可以被用来调度硬实时周期任务, 还可以被用来调度硬实时非周期任务, 适用性好。 2) EDF 算法的优先级分配和调度策略都非 常简单, 并且因为实时任务一旦被释放, 那么它这次运行的截止时刻也就固定了, 所以只需要在实时任务释放和结束的时 刻, 对系统中的实时任务进行新的调度, 不需要时刻监视系统中优先级的变化, 调度效率高。 3) EDF 算法是最优的动态优先级调度算法, 并且调度周期任务集时的可调度性判定 条件也只和周期任务集的总负载有关, 简单容易计算。 4) 如果两个任务的截止期相同,EDF 调度 算法并没有规定优先级相同的两个任务 谁先运行,可以任意挑选一个任务先调 度运行,谁先运行都不会影响周期任务 集整体是否可调度的结果。 2.EDF 算法的优缺点 EDF 算法的优点在于效率高、容易计 算和推断, 这是动态优先级调度研究的一个 主要组成部分。EDF 的缺点在于,理论表明 这种算法能对可调度负载在进行优化, 但是 它不能解决过载问题。 动态调度系统开销太 大,发生过载时,EDF 性能退化很快,会出 现不稳定现象、优先级反转等。 3.EDF 算法的实现 EDF 调度的实现相对容易。执行队列总 是由下一个时限来分类。 当一个任务处于激 活状态时必须将该任务加入到执行队列中, 或者如果任务的时限在当前正在执行的任
动态优先级调度算法的特点与实现
郑镕浩 学号:3008202117 (天津大学 精仪学院 测控 四班 天津 300072) 摘要: 实时调度算法是实时系统中的关键技术。 本文在简单介绍了任务调度及调度算法等概 念后, 详细介绍了根据任务优先级的确定时机对调度算法的分类及其实现方法, 其中侧重介 绍动态优先级调度算法。 第二节通过对静态和动态优先级调度算法的对比, 介绍了动态优先 级调度算法的特点。 第三节通过两种典型动态优先级调度算法的分析及举例, 讲述了动态优 先级调度算法的具体实现方法。 关键词:实时系统;调度算法;动态优先级调度算法
Dynamic priority scheduling algorithm and implementation characteristics
Zheng Ronghao Student ID:3008202117 (Tianjin University,Institute of Precision Instrument, Professional Control,Class Four,Tianjin 300072 ) Abstract: Real-time scheduling algorithm is the key technology in real-time systems. This paper introduces the scheduling algorithms, task scheduling and the concept, the details of the task priority in accordance with the timing of the scheduling algorithm and implementation method of classification, including specific reference to dynamic priority scheduling algorithm. Section through the static and dynamic priority scheduling algorithm contrast, describes the dynamic priority scheduling algorithm characteristics. Section through two typical dynamic priority scheduling algorithm analysis and example, about the dynamic priority scheduling algorithm specific method. Key words: Real-time system; scheduling algorithm; dynamic priority scheduling algorithm
在民用领域得到广泛应用,时至今日,它已 经被广泛应用到了信息通讯、网络传输、媒 实时系统起源于二十世纪中叶, 它的出 体处理等各个领域。 现源于军事发展的需要。 当时 IBM 公司为美 鉴于实时系统的特点, 要求任务调度等 国海军和空军开发了飞行模拟系统和防空 实时内核功能精简和高效。 任务调度策略是 系统,首次引入时限性要求,实时系统由此 实时系统内核的关键部分, 如何进行任务调 诞生。由于它具有及时响应、高可靠性、专 度, 使得各个任务能在其期限之内得以完成 用性、少人工干预等优越性能,很快得到了 式实时操作系统的一个重要的研究领域。 调 广泛的应用。二十世纪五十年代末期,实时 度算法有很多种,如先来先服务调度算法 系统被应用到工业过程控制领域。 六十年代, (FCFS) 、短作业优先调度算法(SJF) 、时间 实时系统又被引入航天领域。 七十年代以来, 片轮转调度算法(RR) ,考虑到紧迫性作业 随着嵌入式技术的飞速发展, 实时系统逐渐 进入系统后能得到优先处理, 引入了高优先
ຫໍສະໝຸດ Baidu
1 引言
作者简介: 郑镕浩 (1990~) , 女, 山西人, 大学本科生, 联系方式: 电话 15822684029 邮箱 bulovek@163.com
级优先调度算法(Priority Scheduling) 。
2 任务调度概述
2.1 任务调度的概念 实时系统根据其对于实时性要求的不 同,可以分为软实时和硬实时两类。硬实时 系统指系统要有确保的最坏情况下的服务 时间, 即对于事件的响应时间的的截止期限 是无论如何都必须得到满足。 其他的所有有 实时特性的系统都可以称之为软实时系统, 就是那些从统计的角度来说, 一个任务能够 得到有确保的处理时间, 到达系统的时间也 能够在截止期限到来之前得到处理, 但违反 截止期限并不会带来致命的错误。 在多任务系统中, 令 CPU 中止正在运行 的任务转而去运行另一个任务的工作叫做 任务切换, 而按某种规则进行任务切换的工 作叫做任务的调度。 在多任务的实时操作系统中, 调度是一 个非常重要的功能, 用来确定多任务环境下 任务执行的顺序和在获得 CPU 资源后能够 执行的时间长度。 实时操作系统不仅要求系 统的逻辑正确性, 还必须要求系统能在规定 的时间内计算出正确的结果并对实时事务 进行相应, 因此实时系统中的调度算法是决 定系统实时性的重要指标。 操作系统通过一个调度程序 (scheduler) 来实现调度功能。 调度程序以函数的形式存 在,用来实现操作系统的调度算法。调度器 本身并不是一个任务,而是一个函数调用, 可在内核的各个部分进行调用。 调用调度程 序的具体位置被称为是一个调度点 (scheduling point) 。 调度点通常处于以下位 置: 当一个新的任务被创建时, 是执行新任 务还是继续执行父任务; 当一个任务运行完毕时; 当一个任务由于 I/O、信号或其他的某 个原因被阻塞时; 当一个 I/O 中断发生时,表明某个 I/O 操作已经完成,而等待该 I/O 操作的任务转 入就绪状态; 在分时系统中, 当一个时钟中断发生时。
3 动态优先级调度算法的实 现
3.1 最早截止期优先调度算法 1.EDF 算法的概念 EDF 算法也称为截止期限驱动调度算法 (DDS)是一种优先级驱动的调度算法,对 实时任务优先级的分配原则是: 根据实时任 务释放时的截止期远近来分配任务的优先 级,截止期越近的任务的优先级越高,系统 在任意时刻总是挑选优先级最高的实时任