硬实时环境下的多任务调度算法

合集下载

一种基于Vxworks的多任务调度算法

一种基于Vxworks的多任务调度算法

务 调 度 、 在 多 种 条 件 制 约 下 的 任 务 调 度 、 多处 理 器 调
度等 【— 】 。 58 ቤተ መጻሕፍቲ ባይዱ
综 上 ,本 文 提 出 了 单 C U 一 种 在 信 号 量 通 信 的 P下 一
基 础 上 时 间 片 轮 转 与 静 态 权 重 优 先 级 抡 F混 合 的调 度
R M调 度 是 为 每 一 个 周 期 任 务 指 定 一 个 固定 的 优 先 算 法 。
时问 、周期 、时序约 束等 。文献 【】 的研 究 表 明 9 电 源 的通 断 .保 证 机 载 设 备 安 全 顺 利 的 运 行 与 其 他
在 实 际 的 微 机 环 境 下 .理 想 的 时钟 周 期 是 不 可 能 存 在 设 备 的物 理 连 接 关 系 框 图如 图 1 示 。 所
工程 开 发 都采 用 基 于任 务 权 重 的 固定 优 先 级调 度 ,
不 问 断查 询
如 文 献 【 】 所 述 的 月 球 车 确 认 系 统 。 不 同 于 文 献 1 0
( A K 2 循 环 发 命 令 索 取 状 态 电 沛 值 { sF T S ) A ko r
【 】 中 的 月 球 车 确 认 系 统 的 是 ,S D 1 0 P A系 统 中 有 周 V l) a :通过R 4 2 u S 2 总线不 问断向S P 阵列板发送命令 索 SC
根 据 图2 可将 系统 分 为9 " 务 ,分 别是 4任
(A K ) 环读 R 2 2 口 (ed o re) S T S 1循 S3 串 Ra Ft dr :P P O
时 间 片 轮 转 调 度 与 基 于 优 先 级 的 抢 占 式 调 度 。 许 多 发 来 的 命 令 被 存 于 环 形 缓 存 区 中 对 环 形 缓 掉 区进 行

一种实时分区操作系统的多余度同步调度方法

一种实时分区操作系统的多余度同步调度方法

一种实时分区操作系统的多余度同步调度方法摘要:实时分区操作系统是一种常用的操作系统类型,其可优化实时应用程序的性能。

然而,多余度同步是在实时分区操作系统中优化性能的重要因素之一。

本文介绍了实时分区操作系统的多余度同步调度方法,主要分为静态和动态两种方法。

静态方法在系统内的多余度上没有变化,如在周期性任务中进行统计,并根据任务字符集的交错进行调度。

而动态方法则是根据系统在运行时的多余度变化进行调度,在多余度较高时增加周期性任务的执行频率,以提高任务响应速度。

本文还介绍了时间窗口算法、分析可通过性和实现方面的问题。

引言:随着实时应用程序的广泛应用,实时分区操作系统也逐渐成为一种常用的操作系统类型。

实时分区操作系统通过使用分区技术,将内存空间划分为多个区域,以优化实时应用程序的性能。

在实时操作环境中,操作系统需要保证在硬实时条件下及时响应应用程序的要求,保持高效性和可靠性。

可靠性的保证通常可以通过多余设计技术来实现,例如使用多余运算、数据备份等技术。

然而,多余度同步是在实时分区操作系统中优化性能的重要因素之一。

实时分区操作系统中的多余度同步调度方法主要有两种:静态方法和动态方法。

静态方法通过在系统内固定多余度上进行统计,并根据任务字符集的交错进行调度。

动态方法则是在系统多余度变化时进行相应的调度,随着多余度的增加,增加周期性任务的执行频率,以提高任务响应速度。

本文将分别对这两种方法进行详细介绍,并讨论时间窗口算法、分析可行性及与实现方面的问题。

静态方法:静态方法最初是由Dohi[1]在1986 年提出的。

其基本思想是通过在系统内固定的多余度上进行统计,并根据任务字符集的交错进行调度。

为了使系统具有较好的实时性能,方法采用了具有周期性的任务,并且具有许多不同的重要度,从最高到最低。

因此,该方法能够保证在任何给定时刻,系统实时响应最高优先级的任务。

该方法使用一个优先级队列来动态适应实时系统的执行。

队列是根据任务的重要度和执行时刻的交错相应构建的。

抢占式最高优先级算法

抢占式最高优先级算法

抢占式最高优先级算法抢占式最高优先级算法是一种常见的调度算法,用于在多进程或多线程的操作系统中,决定拥有高优先级的任务是否可以抢占当前正在执行的低优先级任务,以便让高优先级任务先执行。

本文将介绍抢占式最高优先级算法的原理、应用场景以及其优缺点。

原理抢占式最高优先级算法依据任务的优先级来进行调度。

每个任务都被赋予一个优先级,较高优先级的任务拥有更高的执行权。

如果一个高优先级的任务到达并请求执行,它会立即抢占正在执行的低优先级任务,使自身先执行。

一旦高优先级任务执行完毕或者被阻塞,低优先级任务会继续执行。

抢占式最高优先级算法的关键在于选择高优先级任务并进行抢占。

这一选择常常基于预定的策略,如固定优先级、动态优先级或抢占周期。

应用场景抢占式最高优先级算法在许多实时操作系统(RTOS)中被广泛应用,以确保高优先级任务能够及时响应。

1.实时任务:在实时系统中,某些任务需要及时响应来满足硬实时性要求。

比如,在飞行控制系统中,传感器数据的处理常常具有较高的优先级,以便实时调整飞行控制参数。

2.实时多媒体:在视频或音频播放中,保证实时性是非常重要的。

为了避免出现卡顿或延迟,实时多媒体任务通常具有相对较高的优先级,以确保及时进行数据解码和渲染。

3.紧急事件响应:在多任务的环境中,某些任务可能需要及时响应紧急事件。

比如,网络服务器在遇到高流量或攻击时需要迅速调整优先级以应对。

优点抢占式最高优先级算法具有以下优点:1.及时响应高优先级任务:算法能够保证高优先级任务的及时执行,使得系统能够满足实时性要求。

2.简单高效:算法的实现相对简单,可以高效地处理任务调度。

相比其他调度算法,抢占式最高优先级算法通常需要较少的计算和资源。

3.适用性广泛:算法可以应用于多种场景,可以根据具体需求进行灵活调整。

缺点抢占式最高优先级算法也存在一些局限性:1.低优先级任务饥饿:当高优先级任务过多时,低优先级任务可能被长时间地阻塞,无法得到充分执行。

任务调度算法

任务调度算法

任务调度算法任务调度算法是一种计算机算法,用于安排和管理任务的执行顺序和时间。

在计算机系统中,任务调度是一个非常重要的问题,因为多个任务需要在同一时间内执行。

任务调度算法可以帮助优化资源利用率,提高系统性能,同时保证任务的实时性和可靠性。

任务调度算法通常被用于操作系统、分布式系统、数据库管理系统等领域。

其中,最常见的任务调度算法包括以下几种:1. 时间片轮转调度算法:该算法为每个任务分配一个固定的时间片,当一个任务的时间片用完后,该任务就会被暂停,然后继续执行下一个任务。

这个过程不断循环,直到所有任务都完成。

2. 优先级调度算法:该算法为每个任务分配一个优先级,优先级高的任务先执行。

这个算法可以根据任务的重要性和紧急程度来安排任务的执行顺序。

3. 最短作业优先调度算法:该算法根据任务的执行时间来安排任务的执行顺序。

执行时间短的任务先执行,执行时间长的任务后执行。

4. 基于事件驱动的调度算法:该算法根据事件的发生时间来安排任务的执行顺序。

当一个事件发生时,与该事件相关的任务就会被触发并开始执行。

除了以上几种常见的任务调度算法,还有一些其他的算法,如静态优先级调度算法、动态优先级调度算法等。

不同的任务调度算法适用于不同的场景和应用,因此在选择合适的算法时需要根据具体情况进行选择。

在实际应用中,任务调度算法的优化可以显著提高系统性能和效率。

例如,在分布式系统中,任务调度算法可以帮助平衡不同节点上的任务负载,提高系统的稳定性和可靠性。

在数据库管理系统中,任务调度算法可以优化查询和更新流程,提高数据库的响应速度和性能。

因此,对于任何一个需要处理多个任务的系统来说,任务调度算法都是必不可少的。

实时系统的硬实时与软实时(七)

实时系统的硬实时与软实时(七)

实时系统的硬实时与软实时实时系统是一种特殊的计算机系统,其任务是及时对外界事件作出快速反应,以满足实时性要求。

实时系统的运行速度需要能够满足任务的最早结束时间,而实时性的要求可以分为硬实时和软实时两种。

硬实时是指系统必须在严格的时间限制内完成任务,任何延迟都会导致系统失效。

这种实时性要求常见于航天、军事和医疗等领域,因为延迟或错误可能导致严重的后果。

例如,控制导弹发射的实时系统必须在非常短的时间内进行计算和决策,并确保导弹按时发射,以达到预定目标。

软实时是指系统的任务有时间限制,但相对宽松,可以容忍一定的延迟。

这种实时性要求常见于电信、交通和工业自动化等领域。

例如,手机网络的实时系统需要及时处理和传输大量的语音和数据,但在网络负载高峰期可以容忍一定的延迟,而不会造成用户体验的严重影响。

在实时系统的设计和开发过程中,硬实时和软实时的区别对于系统架构和调度算法的选择至关重要。

对于硬实时系统,关键是保证系统能够按时响应外界事件,并及时完成任务。

为了满足硬实时的要求,系统需要特定的硬件设备和实时操作系统的支持。

硬实时系统通常具有确定性的执行时间,能够对任务的优先级和截止时间进行严格的调度和管理。

此外,硬实时系统通常使用专门的实时编程语言或实时库,以提高任务的响应速度和可靠性。

相比之下,软实时系统的主要目标是尽可能满足任务的实时要求,但可以容忍一定的延迟。

软实时系统通常使用一般用途的操作系统和编程语言,因此更容易实现和维护。

软实时系统的关键是根据任务的优先级和截止时间进行合理的调度和资源分配。

在设计软实时系统时,需要权衡任务的执行时间和延迟的风险,以及系统的资源利用率和可伸缩性。

无论是硬实时还是软实时系统,实时性的要求对于系统性能和可靠性都有重要影响。

实时系统的性能不仅包括任务的响应时间和完成时间,还包括系统的可靠性和容错能力。

为了提高实时系统的性能和可靠性,可以采用多任务并发执行、优化算法和调度策略、增加硬件冗余和错误检测机制等方法。

实时系统中的硬实时约束与截止时间保证(八)

实时系统中的硬实时约束与截止时间保证(八)

实时系统中的硬实时约束与截止时间保证现代社会中,实时系统已经渗透到了我们生活的方方面面,它们在交通运输、金融交易、医疗诊断等各个领域发挥着关键作用。

然而,实时系统的可靠性和安全性对于实时任务的截止时间保证来说是至关重要的。

本文将探讨实时系统中的硬实时约束与截止时间保证的问题。

一、硬实时约束的概念与应用硬实时约束是指实时任务必须在其规定的截止时间前完成,否则会导致严重的后果。

这种约束要求系统的响应时间必须足够短,以确保任务在规定的时间内完成。

在实际应用中,硬实时约束常常出现在对安全、质量和效率要求极高的场景中。

以交通系统为例,交通信号灯的控制需要严格遵守硬实时约束。

如果信号灯不能及时地切换,就可能导致车辆堵塞、交通事故的发生等严重后果。

因此,交通信号灯控制系统必须能够准确地根据交通流量和道路状况来计算信号灯的切换时间,以确保实时约束的满足。

二、实时任务的调度与截止时间保证为了满足实时系统中的硬实时约束,需要采用合适的任务调度算法来保证任务按时完成。

其中,最常见的任务调度算法包括静态优先级调度和动态优先级调度。

静态优先级调度是指在任务创建时为任务分配固定的优先级,优先级高的任务会优先执行。

这种调度算法简单高效,但是对于具有复杂的任务集合和依赖关系的系统来说,静态优先级调度的截止时间保证能力较差。

动态优先级调度是在运行时根据任务的截止时间和状态来动态调整任务的优先级。

这种调度算法能够更好地适应实时系统的变化,提高截止时间的保证能力。

除了任务调度算法外,实时系统中还可采用一些截止时间保证技术来提高系统的可靠性。

例如,可以采用备份任务的方式,在任务执行失败时自动切换到备份任务,以确保任务的截止时间能够得到保证。

三、实时系统中的延迟与截止时间分析实时系统中的延迟是指任务从提交到实际执行所经历的时间差。

延迟的存在会导致任务无法在规定的截止时间内完成,从而违反硬实时约束。

因此,对实时系统中的延迟进行分析是保证截止时间的关键。

实时系统中的实时多任务处理与实时优先级规划

实时系统中的实时多任务处理与实时优先级规划

实时系统中的实时多任务处理与实时优先级规划一、引言实时系统是指在特定的时间约束下,能够对外部事件作出及时响应的计算机系统。

实时多任务处理是实时系统中一项重要的技术,其涉及到任务的调度和执行顺序的确定。

实时优先级规划则是实现实时多任务处理的关键。

二、实时多任务处理的基本原理实时多任务处理是指在实时系统中同时调度和执行多个任务。

实时任务可以分为硬实时任务和软实时任务。

硬实时任务具有严格的时间约束,必须在特定的截止时间内完成。

软实时任务则是可以容忍一定的违约延迟。

在实时多任务处理中,需要考虑以下几个关键问题:1. 任务调度:根据任务的截止时间和优先级,确定任务的执行顺序。

2.资源分配:为任务分配必要的处理器时间和其他系统资源。

3.任务切换:实现任务之间的切换,确保任务能够按时执行。

4. 关键任务保护:对于硬实时任务,需要采取相应的措施,确保其能够按时完成。

三、实时优先级规划的策略实时优先级规划是实现实时多任务处理的关键。

常用的实时优先级规划策略包括静态优先级调度和动态优先级调度。

1. 静态优先级调度静态优先级调度是指在任务创建时就确定其优先级,优先级不会发生改变。

常见的优先级算法有:- 优先级预设算法:为每个任务分配唯一的优先级,根据优先级确定任务的执行顺序。

- 抢占式优先级算法:任务可以抢占正在执行的低优先级任务,高优先级任务具有更高的执行权。

- 时钟中断算法:通过定时器中断周期性地进行任务调度,高优先级任务可以提前中断低优先级任务。

2. 动态优先级调度动态优先级调度是指根据任务的实时状态动态地调整任务的优先级,以适应系统的变化。

常见的动态优先级调度算法有:- 基于时段划分的调度算法:将任务的优先级分为多个时段,不同时段对应不同的任务优先级。

- 基于剩余执行时间的调度算法:根据任务的剩余执行时间动态调整任务的优先级。

- 基于历史执行时间的调度算法:根据任务的历史执行时间动态调整任务的优先级。

四、实时多任务处理与实时优先级规划的应用实时多任务处理和实时优先级规划在各行业的实时系统中都有广泛的应用。

嵌入式系统中的任务调度算法

嵌入式系统中的任务调度算法

嵌入式系统中的任务调度算法一、引言随着信息技术的飞速发展,嵌入式系统已逐渐成为人们生产、生活中不可或缺的一部分。

而嵌入式系统中的任务调度算法则是嵌入式系统设计中的一个重要因素,本文将就其进行介绍和分析。

二、任务调度算法定义在嵌入式系统中,任务调度算法是指将系统中的各种任务按照一定的优先级和时间片分配方式,进行有效的调度及执行的算法。

其是嵌入式系统中的核心部分之一,影响着系统的运行稳定性和性能,并且具有很大的灵活性。

三、常见的调度算法1.时间片轮转调度算法(Round-Robin Scheduling Algorithm)时间片轮转调度算法是一种基本的、简单明了的调度算法,将所有的进程按照到来的顺序排列,然后依次执行每个进程,每次执行一定时间片后,将原来的进程挂起,或者放入到队尾,等待下次轮到它时继续执行。

该算法的优点是实现简单,各个进程能获得公平的CPU占用时间;缺点是当进程数较多时,各个进程可能需要等待很长时间才能获得执行。

2. 优先级调度算法(Priority Scheduling Algorithm)优先级调度算法是依据任务优先级进行进程调度,即越高优先级的进程越先被执行。

当多个进程具有相同优先级时,可以采用时间片轮转或抢占方式。

优点是可以充分利用CPU资源,缺点是由于优先级过高可能导致优先级低的进程无法被执行。

3. 抢占式调度算法(Preemptive Scheduling Algorithm)抢占式算法指系统允许已经获得CPU的进程被其他高优先级进程抢占资源,以使高优先级进程优先获得CPU资源。

优点是能够快速响应高优先级任务,缺点是由于频繁的上下文切换可能导致系统负荷较大。

4. 种植调度算法(Planting Scheduling Algorithm)种植算法是一种模拟种树的算法,在其基本思想中,每个节点代表一个任务,节点的权值反应了这个任务的优先级。

这种算法快速而有效地找出一组优先级,使得根据这些优先级获得的树深度最小,并使从任意节点到根的路径之和最小。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1:任务ti在任务tm的请求间执行
图2:调度两个任务
定理 1 的结果也表明某种意义上的最优先级分配方案,将在定理 2 中陈诉。让我们讨论假定有两个任 务 t1 和 t2 情况下的一般结论。设 T1 和 T2 分别为任务的请求周期且 T1<T2。如果设 t1 为高优先级任 务,那么根据定理 1 ,下面的不等式必定满足: (译注:在 T2 期间至少要保证 t2 执行一次,而 t1 可以执行多次)
4、固定优先级调度算法 在这一节我们导出一个优先级分配的规则,由它生成一个最优的静态调度算法。决定这个分配规
则的一个重要概念就是任务的临界瞬点。任务请求的时限(deadline)定义为该任务的下一次请求的 到来时间。对于按某些调度算法调度的任务集合而言,如果时间t是一个未完成任务请求的时限,那么 我们说在时间t发生了溢出(overflow)。给定一个任务集合,如果任务被调度而不发生溢出,那么称 该调度算法是可行的。任务请求的响应时间定义为一个请求到请求响应结束时的时间跨度。(临界瞬 点定义为一时刻,在该时刻任务被请求将有最大响应时间)。任务的临界区间 是与该任务请求的响 应结束时间之间的间隔。我们有如下的定理:
定理1、任何任务的临界瞬点发生在这样一个时刻,在该时刻此任务被请求,而比该任务优先级 高的所有任务都在该时刻被请求。
证明:用τ1,τ2,……,τm表示一系列按优先级排序的任务,τm是其中最低优先级的任务。 考虑在t1时刻发生了一个τm的特定请求,假定在时间区间t1到t1+Tm(其中t1+Tm是指任务tm的后 继请求发生的时刻),任务τi(i<m)的请求发生在t2,t2+Ti,t2+2Ti,…,t2+kTi 时刻。如图1 所示。显然,由于任务τi请求会剥夺任务τm的运行,除非任务τm在时间t2时刻前完成,否则任务 τm的完成时间会向后延迟。从图1可以进一步看出,提前请求时刻t2不能加快任务请求τm的完成, 提前时刻t2不是让τm的完成时间不变就是使其完成时间延迟。所以,τm的最大延迟时间就是当时刻 t2和t1同时发生的时候。
假定1对比了Martin[2]的意见,但看来对于纯处理控制来说更有效。假定2消除了单个任务的排队问题。 为实现假定2,必须存在小的但可能大量的缓冲区为每个周期性函数服务。Any control loops closed within the computer must be designed to allow at least an extra unit sample delay. 注意假定3不包括这种情况:任务Tj仅仅在任务Ti发生一定次数(为固定值)——设为N次——后发生 一次。这种情况的模型表示为:周期性任务Tj是Ti周期的N倍,第N次Ti请求的同时伴随着第1次Tj请 求。假定4中的运行时间可以解释为一个任务的最大处理时间。这些假定用两个数字来描述一个任务 的全部特性:即请求周期和运行时间。除非格外声明,本文将采用符号τ1,τ2,……,τm表示m 个周期性任务,用T1,T2,……,Tm表示请求周期,用C1,C2,……,Cm表示运行时间。一个任 务的请求率(request rate)定义为它的请求周期的倒数。
1
1
西南交通大学 信息学院 嵌入式系统实验室 内部学习研究资料 请勿扩散
4、 每个任务的运行时间(run-time)是个常量,不会随时间的变化而变化。运行时间(run-time) 是指一个处理器无中断地运行该任务所需的时间。
5、 系统中的每个非周期性任务都是特定的,初始化例程或错误恢复例程。它们运行时就取代周期 性的任务,并且不具有硬时限。
调度算法就是一个规则集合,它用来决定任务在某个特定时刻被执行。本文中讨论的调度算法是 可剥夺和优先级驱动算法。这意味着当一个高优先级的任务请求到来时,当前运行的任务立即被中断, 高优先级的新任务马上开始运行。因此对算法的说明主要就是对任务分配优先级方法的说明。如果一 个算法分配给任务一个一成不变的优先级,那么称该算法为静态算法。静态算法也称为固定优先级调 度算法。相反,一个算法分配给任务的优先级能够因请求变化而改变,那么该算法称为动态算法。一 个算法给一些任务固定优先级而其它一些任务动态优先级,那么该算法称为混合算法。
4
4
西南交通大学 信息学院 嵌入式系统实验室 内部学习研究资料 请勿扩散
了处理器。对给定的固定优先级调度算法,处理器利用率的最低上限就是所用任务集的任务充分利用 处理器时利用率的最小值。对于那些处理器利用率因子小于最低上限值的任务集合,一定存在一种可 行的固定优先级分配方案。另一方面,利用率因子超过了最低上限值,则是否存在可行的优先级分配 方案就要由任务的周期 Ti 来确定了。
5.可能达到的处理器利用率 就这一点来说,有可利用的工具来确定在固定优先级系统中处理器利用率的最小上限。我们定义
(处理器)利用率为任务集执行花费处理器时间的百分比。换句话说,利用率等于 1 减去处理器空闲 时间。因为 Ci/Ti 为花费在执行任务 ti 的处理器,所以对 m 个任务,利用率为
虽然处理器利用率能通过增加 Ci 的值和减小 Ti 的值来提高,然而要求所有任务在它们的临界点 满足它们截止期的要求就是上限。显然,我们不关心处理器利用率的最小值。但关注处理器利用率的 最大值却是有意义的。再明确以下我们的看法。对一种可行的优先级分配算法,如果对任务集中任意 任务运行时间的增加将使得原本对该任务集可行的优先级分配算法不再可行,则称该任务集充分利用
由于速率单调优先级分配算法是最优的。所以对给定的任务集用速率单调算法调度时处理器利用 率大于等于其它优先级分配算法。因此,确定的最低上限是速率单调算法在所有可能请求周期和运行 时间任务的利用率的最大下界。 定理 3: 对固定优先级分配的两个任务集,处理器利用率的最低上界是U=2(21/2 -1). 证明:设 t1 和 t2 为两个任务,它们的周期和运行时间分别为 T1,T2 和 C1,C2。假定 T2>T1。根据速 率单调算法,t1 比 t2 优先级高。
2 背景 一台过程控制计算机需要处理一个或多ቤተ መጻሕፍቲ ባይዱ监控任务。对飞船运行轨迹的监控就是一个很好的应用
例子。这种监控功能涉及到很多任务,有些任务响应由被监控设备上的计算机处理执行事件,其他任 务则响应其余的任务。而每种任务都是在被请求之后才被执行,且都必须在规定的时间内完成,则这 种就叫“硬实时”。而对于“软实时”,响应时间的统计分配是可以接受的。
很多文献对商业多任务分时系统进行了统计分析。文献[3-8]对多处理器的批处理调度和时分批处 理调度进行了研究。对“硬实时”的研究文献很少。文献[1]对“硬实时”的情况进行了研究,获得了 一种调度算法,但其有很大缺点,它的约束条件之一是必须所有的任务同一时间进行请求,这是不符 合实际的。文献[9]也讨论了软件调度问题,提出了一种 ALGOL 多任务编程程序,其可以由软件实现 或设计成一种特定场合的调度器。通过对资源、优先级、时间槽的分配,文献[9]提出了一种程序,此 程序计算出估计的时间分配,以确保服务按时完成。但文献[9]没有介绍程序必须使用的调度算法。
同理,对于所有的ti,i=2,…,m-1,我们都可以证明这个定理。
2
2
西南交通大学 信息学院 嵌入式系统实验室 内部学习研究资料 请勿扩散
这个结论的价值在于通过简单直接的计算可以决定一个给定的优先级分配能否产生一个可行的调度 算法。特别地,如果所有任务的请求在它们的临界瞬点前被完成,都没有超过各自的时限(deadline), 那么这个调度算法就是可行的。举例如下:假定两个任务τ1和τ2,各自请求周期为T1=2,T2=5, 运行时间C1=1,C2=1。如果任务τ1优先级高于τ2,则通过图2(a)可以看出这样的优先级分配是 可行的。进一步看,C2的值可以最大增长到2,优先级分配还是可行的,如图2(b)所示。相反,如 果任务τ2拥有更高的优先级,则C1和C2的值都不能超过1,才能使该优先级分配可行,如图2(c)所 示。
非所有的假定都是绝对必要,在后面的章节中将讨论放宽这些假定会产生的影响。 假定如下: 1、 所有“硬时限”(hard deadline)任务的请求是周期性发生,请求间具有一个常量间隔。 2、 时限仅仅考虑运行能力的限制――比如每个任务必须在下一个让它运行的请求发生之前完成。 3、 请求的各个任务都是独立的,因为每个任务不会依赖于其它任务的初始化或完成。
结论:若选择两个任务中周期长的任务为高优先级将产生较长的临界区(时间长),所有选择周 期短的任务为高优先级将产生较短的临界区。)
定理 2: 如果对一些任务集有可行的优先级分配算法,则速率单调算法对该任务集也是可行的。 证明: 设 t1,t2,···,tm 为 m 个有可行优先级分配算法的任务。设 ti 和 tj 为有相邻优先级的两个任 务,且其中 ti 为高优先级任务。假定 Ti >Tj。若交换 ti 和 tj 的优先级,不难理解,作为结果的优先级 分配仍然是可行的。因此速率单调算法能满足对一系列优先级对重新排序(如上)后的任意优先级顺 序,故该定理得以证明。
3
3
西南交通大学 信息学院 嵌入式系统实验室 内部学习研究资料 请勿扩散
如果设 t2 位高优先级任务,那么下面的不等式一定成立: (译注:在 T1 期间至少要保证 t1 执行一次,即:在 T1<T2 的情况下,当 t1 为高优先级时,它们的 共有临界时刻一定小于当 t2 为高优先级的情况。)
所以有
文献[10]对“实时”系统进行了介绍,并用传统的方法讨论了编程时遇到的问题。文献[10]对必须 应用实时开发软件的严格的工程控制管理进行了介绍。文献[11]对自动结帐系统软件进行了介绍。这 些介绍都是讨论了软件设计的一种系统方法,还没有用到实际中来。
3、环境 为获得硬实时环境中程序运行的具体分析数据,必须先对运行的环境作出一定的假定。当然,并
西南交通大学 信息学院 嵌入式系统实验室 内部学习研究资料 请勿扩散
硬实时多任务调度算法
摘要:本文对单处理器多任务调度问题进行了研究。笔者认为调度程序的特点是保证可靠的服务。本 文研究表明,一个最佳固定优先级调度器具有处理器利用率的上确界,当任务很多时此上确界可能为 0.7。本文研究还表明,根据任务时限进行动态优先级分配的调度算法可以获得百分之百的处理器利用 率。本文还对这两种调度技术的混合型算法进行了讨论。 关键字:实时多任务编程,调度,多任务调度,动态调度,优先级分配,处理器利用率,时限驱动调 度
相关文档
最新文档