基于实时调度系统的多任务分配算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义 1:任务是指具有某一特定功能的软件实体,是调度的最小实体,具有 实时性能需求的任务称为实时任务。
定义 2:Ti(Ci,Di)可以描述任意一个任务,c;为任务的执行时间,D;为任务 的截止期(Deadline)。每个任务都具有调度特征,任务通常分为周期任务和非周 期任务。周期任务的周期用 P;表示,非周期任务的到达时间不确定。 2.1.2 多处理器任务调度模型
1 绪论
1.1 实时系统发展概况 计算机实时系统是计算机应用领域的一个重要分支,随着计算机技术的快速
进步,实时系统的研究也得到了迅猛发展,特别是嵌入式实时系统在航天飞机、 空间站、家电等应用领域发挥着巨大的作用。早期的实时系统功能简单,包括单 板机、单片机,以及简单的嵌入式实时系统等,其调度过程相对简单。随着大型 实时系统发展的需要,早期广泛应用的调度理论己经不能适应复杂应用的要求。 最近这些年来科研机构在实时系统建模、实时系统设计和验证、实时系统调度、 实时通信、实时操作系统等领域做了大量研究工作,并获得许多研究成果,极大 地推动了实时系统的研究和发展。
由于实时系统应用范围的不断扩大,实时应用变得日趋复杂,任务量和数据 量的增加以及计算复杂度的加大使得传统的单机实时系统不能满足现实需要。同 时由于计算机迅猛发展和硬件价格的降低,多处理器系统迅速得到发展。目前,
1
多处理器系统己经在航空、航天、航海、过程控制、军事等领域得到广泛地应用 随着计算机与自动控制技术的发展,实时系统的应用范围在不断地扩大,系统的 复杂性也在不断地提高,因此,对实时调度理论提出了新的要求。到目前为止,很 多调度算法都是针对单机系统提出的,主要包括静态调度算法和动态调度算法。 典型的静态调度算法有 RM 调度算法、DM 调度算法等[1],而比较有代表性的动态调 度算法有 EDF 和 LST 等。
所谓实时系统是指在一个确定的时间内,对外部产生的事件做出响应,并在 确定的时间里完成这种响应,或者是指必须在其运行环境规定的时间范围内响应 环境激励的计算机系统,实时系统不仅要保证逻辑的正确性,而且要在确定的时 间内提供正确的结果。
(l)实时系统的分类 实时系统通常分为硬实时(hard real-time)系统和软实时(soft real-time)
(2)实时系统的特点 实时系统具有以下特点: a)实时系统的任务具有截止期,即实时任务必须在一个确定的时间内完成; b)实时任务具有结构上的内在联系,它与传统计算机的计算任务不同,后者 相互无关、自成一体地独立计算任务。而一个实时任务可以划分成多个任务执行, 有时多个任务也可以合并成一个任务; c)任务的活动具有各种要求和时限,如计算时间要求、资源要求、执行次序、 执行时间等限制; d)实时系统的任务是可预测的,即任务在最坏情况下的执行时间以及所需要 的资源,要求对最坏情况的预测值与实际的差别尽可能的小; e)实时系统里所有任务,都是外部事件所激发的; 实时系统的任务具有合作性,它们相互关联,共同完成某个控制任务。实 时系统的任务活动具有不可逆性。 总之,在实时系统中,被控对象是一个并发活动的有机整体,对被控对象进 行监视和控制任务,它们之间存在着各种复杂的逻辑关系。因此如何统一安排各 个任务的执行,以确保所有任务在其截止期内完成是实时系统的一个关键问题, 通常称为实时任务调度。
7
执行时,CPU 却保持空闲的情况[4]。 DCT 调度算法的基本原理是,动态地确定当前处理器的关键任务,将其关键
父任务复制到当前处理器,以减小关键任务 tk,l 的 epftk,l,从而减小 SLi.DCT 算法 包括两个主要内容,一是选择策略,即选取未调度任务中哪一个任务予以调度的 策略;二是复制策略,即决定什么任务需要复制,在什么时候复制,复制到什么地 方.
随着实时多处理机系统的大量涌现,学者们开始注重对实时多处理器系统的 调度算法进行研究。虽然,一些实时单处理器系统调度算法被沿用到实时多处理 器系统的调度中,但由于两者调度的对象环境不同,一些在单处理器系统的调度 中性能最优的算法在实时多处理器系统中的效果并不是最优的。因此,这便需要 对多处理器系统的调度算法开展专门的研究。目前,这一方面的研究非常活跃, 1.2 实时系统的基本概念
DCT 算法的实现过程是,每调度一个新的任务,就构造一个当前处理器,当前 处理器开始只包括开始任务和当前任务,然后动态地确定当前处理器中的关键任 务,将关键任务的关键父任务复制到当前处理器,直到当前处理器中关键任务的 最早可能完成时间不能减小或没有关键父任务时为止。 2.4 单处理器静态调度算法
如果实时系统运行在一个单独的处理器上,则为实时单处理器系统。在这种 系统中对任务进行调度的算法称为单处理器调度算法。单处理器调度算法在实际 应用上有很重要的地位,其中常用的单处理器实时调度算法有 RM 和 DM 等固定优 先级调度算法。
(3)基于时间的进程调度算法 对于那些具有稳定、已知输入的简单系统,可以使用时间驱动的调度算法, 它能够为数据处理提供很好的预测性。这种调度算法本质上是一种离线的静态调 度方法。在系统的设计阶段,对系统处理情况明确的情况下,对各个任务的开始、 切换、以及结束时间等事先做出明确的安排和设计。这种调度算法适合于那些小 的嵌入式系统、自控系统、传感器等应用环境。这种调度算法的优点是任务的执 行有很好的可预测性,但最大的缺点是缺乏灵活性,并且会出现当有任务需要被
图 2 实时调度分类
5
2.3 实时调度算法 各种实时操作系统的实时调度算法可以分为如下三种类型:基于优先级的调
度算法(priority-driven scheduling ,PD)、基于 CPU 使用比例的共享式的调度 算 法 (Share-driven scheduling ,SD) 、 以 及 基 于 时 间 的 进 程 调 度 算 法 侧 me-driven scheduling ,TD),下面对这三种调度算法分别进行介绍[2]。
6
基于优先级的调度算法简单而有效,但这种调度算法提供的是一种硬实时的 调度,在很多情况下并不适合使用这种调度算法,比如实时多媒体会议系统的软 实时应用。对于这种软实时应用,使用一种比例共享式的资源调度算法(SD 算法) 更为适合。
比例共享调度算法指基于 CPU 使用比例的共享调度算法,其基本思想就是按 照七定的权重(比例)对一组需要调度的任务遥硷调度,-让它们的执行时间与它 们的权重完全成正比。通常,可以通过两种方法来实现比例共享调度算法。第一 种方法是调节各个就绪进程出现在调度队列队首的频率,并调度队首的进程执行; 第二种方法就是逐次调度就绪队列中的各个进程投入运行,但根据分配的权重调 节分配每个进程的运行时间片。
2 实时多任务调度算法的研究
2.1 实时调度的基本概念 实时调度任务和常见的任务调度最大的区别是要满足处理器与时间的关系,特别
3
是在多任务并发系统中,若要确保各个实时任务能够及时调度,就必须对任务集 在系统处理器上进行合理的安排,因此实时调度成为实时系统研究的一个关键问 题。现实世界存在不同类型的实时系统,它们对资源要求以及对时间约束的形式 不同,因此其调度算法就不同,比如当任务是周期性的,其周期就很重要,当任务 是非周期性的,则截止期就很重要,选取何种调度算法对系统的实时响应能力有 直接影响。实时调度算法是保障实时系统时限性和高可靠性的最重要手段之一, 一直以来都是实时系统研究的热点问题。实时调度(real-timescheduling)是建 立在实时系统内,决定一系列任务何时调度,以及在哪个处理器上运行的一种手 段。实时调度的核心是资源分配,即如何分配资源以保证每个实时任务在正确的 时间段产生正确的输出。对于不同的实时系统,对资源的要求也就不同。。 2.1.1 实时任务
比例共享调度算法可以分为以下几个类别:轮转法、公平共享、公平队列、 彩票调度法(tottery)等。比例共享调度算法的一个问题就是它没有定义任何优 先级的概念,所有任务都根据它们申请的比例共享 CPU 资源,当系统处于过载状 态时,所有任务的执行都会按比例地变慢。所以为了保证系统中的实时进程能够 获得一定的 CPU 处理时间,一般采用一种动态调节进程权重的方法。
基于实时调度系统的多任务分配算法
摘要:随着自动控制技术的发展,实时系统广泛应用于航空、航天、航海等领域, 多处理器调度问题是影响实时系统性能的关键问题,基于任务复制的调度算法是 解决多处理器调度问题较为有效的方法.本文提出了基于动态关键任务(DCT)的 多处理器任务分配算法。DCT 算法以克服贪心算法不足为要点,调度过程中动态 计算任务时间参数,准确确定处理器的关键任务,以关键任务为核心优化调度,逐 步改善调度结果,最终取得最优的调度结果.分析和实验证明,DCT 算法优于现有 其它同类算法。 关键字:调度长度;任务复制;多处理器系统;任务分配
系统。硬实时系统要求实时调度能够保证任何任务的任何一次运行都必须在规定 的时间范围内结束,否则会发生严重的后果。例如医院特护病房的监控系统、飞 行器 中的自动驾驶仪以及核反应堆中的安全控制系统等。软实时系统则要求实பைடு நூலகம்调度
2
最大限度地满足所有任务的时间要求,如果某些任务偶然超过截止期并不会影响 系统性能,如多媒体系统、信息采集与检索系统等。
RM(Rate Monotonie)速率单调算法 RM 调度算法是一种比较典型的多任务系统下的静态优先级调度算法,该算 法给系统中的每个任务设置一个静态优先级,优先级的设定是由任务的周期和任 务的截止期确定。RM 是指任务按照单调速率优先级分配。周期越短,截止期越紧 迫,优先级越高。 RM 调度模型 所有的实时任务必须满足以下条件:
多处理器调度就是将 n 个任务分配到 m 个处理器上(需要满足前后约束关 系),确保每个任务能准确迅速地完成任务调度过程见图 1 所示。
4
图 1 任务调度过程 2.2 实时调度的分类
调度算法是操作系统中处理器调度所采取的调度策略,在设计调度算法时要 考虑的因素很多,通常应考虑系统设计目标、资源利用率、用户要求、优先级处 理、抢占方式和非抢占方式等。对不同要求的系统应采取不同的调度算法,而各 种调度算法的性能不同。从不同的角度出发,任务调度问题有不同的分类方法, 每种分类方法反映出设计调度算法时要考虑的土要因素。实时调度分类图见图 2
图 3 以 L(n)与 n 的关系图 由图可以看出,它随着 n 单调递减,当 n-,。 在不考虑 n=1 的情况下,RM 算法是单处理器下的最优静态调度算法。 DM(Dead11neMonotonicSehedu11ng)调度算法
(1)基于优先级的调度算法 基于优先级的调度算法是指给每个进程分配一个优先级,在每次进程调度时, 调度器总是调度那个具有最高优先级的任务来执行。根据不同的优先级分配方法, 基于优先级的调度算法可以分为以下两种类型: a)静态优先级调度算法 这种调度算法给系统中得到运行的所有进程都静态地分配一个优先级。静态优先 级的分配可以根据应用的属性来进行,比如任务的周期,用户优先级,或者其它的 预先确定的策略。RM(Rate-Monotonic)调度算法是一种典型的静态优先级调度算 法,它根据任务执行周期的长短来决定调度优先级,周期越小的任务具有的优先 级越高。。 b)动态优先级调度算法 这种调度算法根据任务的资源需求来动态地分配任务的优先级,其目的就是 在资源分配和调度时具有更大的灵活性。非实时系统中就有很多这种调度算法, 比如短作业优先的调度算法。在实时调度算法中,EDF 算法是使用最多的一种动 态优先级调度算法,该算法根据就绪队列中各个任务的截止期限(end line)来分 配优先级,具有最近的截止期限的任务具有最高的优先级[3]。 (2)基于比例共享调度算法
8
a)所有任务均为周期任务; b)所有任务必须在其截止期之前结束; c)所有任务相互独立; d)所有任务具有恒定的运行时间; e)所有任务的调度时间和切换时间忽略不计; f)所有任务分配在单处理器上进行。 定理 2.1:n 个独立的周期任务组成的任务集,若处理器利用率 u 满足 则可由 RM 调度表示 n 个任务的 CPU 利用率的最小上界。以 L(n)与 Pi, 无关,它随 n 的变化关系如图 3 所示:
相关文档
最新文档