电信级以太网系统及用于该系统的实时任务调度方法

文档序号:6577292阅读:170来源:国知局
专利名称:电信级以太网系统及用于该系统的实时任务调度方法
技术领域
本发明涉及一种电信级以太网系统及电信级以太网系统上的任务调度方 法,具体涉及一种电信级以太网系统及应用于电信级以太网系统的基于复合 任务价值-截止期-资源的实时任务调度方法。
背景技术
与传统以太网相比,电信级以太网具有下列五个特性提供可靠的业务 保护模式、可扩展性、对TDM(Time Division Multiplexing)业务的支持、高 QoS(Quality of Service)、 OAM(Operation, Administration, Management)能力, 这就要求应用各种技术和方法改善电信级以太网系统的功能和性能。电信级 以太网软件子系统在电信级以太网系统中占有极其重要的地位,这就要求这 部分既是高效的,同时也是可靠的,这也决定了电信级以太网系统对时间特 性有较高的要求,它是一种实时系统。当前的电信级以太网产品,基本上以 实时多任务操作系统+ASIC或NP厂家的驱动开发包+协议栈+网管的模式来 开发软件子系统,系统设计时首先考虑的是功能的实现和堆砌,并未充分考 虑和利用硬件平台和具体应用的特性,导致设计的软件子系统在任务调度、 资源共享以及外部事件响应和处理等方面尤其是任务调度方面存在不足的地 方。
任务调度技术是实时系统中的关键技术之一,在非实时系统中,调度的 主要目标是减小系统平均响应时间,提高系统资源利用率,或优化某一项指 标。而实时任务调度的目的则是尽可能地保证每个任务满足他们的时间约束, 及时对外部请求做出响应。实时调度技术通常有多种划分方法,如抢占式调 度和非抢占式调度,静态表驱动策略和优先级驱动策略等等。
一个实时系统中,硬截止期任务、固截止期任务和软截止期任务同时存 在,另一方面,定期任务和非定期任务也是同时存在的。定期任务和非定期 任务的调度各自具有自身的特性。
定期任务调度最常用的方法是基于优先级的调度,而基于优先级的调度
5态优先级两类方法。
静态优先级方法的代表是单调速率RM(Rate Monotonic)调度方法,动态 优先级方法中使用较多的是早截止期优先EDF(Early Deadline First)调度方 法。这两类方法建立在如下的假设上
(1) 所有具有硬截止期的任务的请求是周期性的,任务的两次请求之间的 时间间隔为常数。
(2) 截止期由可运行性唯一决定,换句话说,每个任务必须在下一个请求 到来之前完成本次执行。
(3) 任务是相对独立的,也即一个任务实例的执行不依赖于其它任务实例 的开始和结束。 '
(4) 每个任务的运行时间不随时间而改变,也就是说,所有实例的运行时 间都是相同的。
(5) 所有非周期性任务都不具有硬截止期,且不影响周期性任务的行为。 一般情况下,实时系统涉及混合任务集的调度处理,其中不仅有定期任
务与非定期任务,而且任务可能具有硬截止期、固截止期或者软截止期。具 有混合任务集的实时调度算法的目标是l.保证硬截止期任务满足截止期; 2.最大化固截止期任务的完成数量;2.最小化软截止期任务的平均响应时间。 在实时混合任务调度中,处理软截止期非定期任务的方法主要有后台执 行方法、基于服务器的算法和基于空闲时间的算法。
(1) 后台执行方法,它是在处理器空闲(未执行任何未完成的定期任务)时
以FCFS次序执行这些非定期任务,如果定期任务的负载很高,则用于后台处 理非定期任务的处理器时间就相当少,因此非定期任务的响应时间是不可预测的。
(2) 基于服务器的方法,该方法又称作带宽保留算法,其主要思想是,在保 证满足定期任务截止期的前提下,引入一个或者几个额外的定期任务作为服 务器来处理非定期任务,这些任务使用指定的处理器带宽,根据定期任务调 度算法的不同,带宽预留算法又可以归结为固定优先级服务器算法与动态优 先级服务器算法。、
(3) 基于空闲时间的方法,包括空闲时间偷取算法(slack stealing algorithm)、时间片移位算法(slot shifting algorithm)与双重优先级算法(dual priority algorithm),这些算法都是通过离线或者在线分析从定期任务调度的空
6隙获得尽可能多的处理时间来处理非定期任务。
归纳起来,当前对实时任务调度的研究,多集中在从理论上探讨,在保 证硬截止期定期任务不错过时限的基础上,如何提高CPU的利用率上。这些
研究在下列方面存在不足
(1) 为理论研究方便,常常假设任务调度开销可以忽略,假设任务之间相 对独立,假设任务不受CPU以外的资源的影响。这些因素在实际实时系统中 是不可忽略的。
(2) 当前的研究多集中在以确保定期任务的截止期为前提来调度非定期任 务,如不可行,则舍弃非定期任务。实际上系统多受外部事件驱动,对外部 事件的快速响应往往要求非定期任务也具有硬截止期,舍弃非定期任务同样 有很严重的后果。
(3) 研究多以周期和截止期依据决定任务的优先级,而忽视了实时任务对 整个系统的影响度和任务的价值,使得实际的调度在输出上不是最优。有部 分研究虽然考虑了任务的价值和价值密度,但无合适的量化方法,而且基于 价值密度仅考虑了处理机资源,而未考虑其它资源的影响,不完全合乎实际 系统的特性。
(4) 未考虑外部事件产生的中断带来的开销,而中断处理程序往往运行在 核心态,往往具有更高的执行优先权,同时对系统资源的影响不能忽略。
(5) 大多数算法的实现时间和空间复杂度较高,难以在实际系统实现。

发明内容
本发明的目的是为提高电信级以太网系统的性能,提出了一种基于任务 复合价值密度、截止期和开销的调度算法来完成电信级以太网系统的软件调 度,设计任务的价值时,合理考虑外部事件的紧急程度,以改善对外部事件 的响应和处理速度,同时考虑任务之间的依赖性及资源的使用情况。当外部 事件发生时,既考虑处理外部事件的中断处理程序的执行时间,同时被中断 服务程序激活的非定期任务可根据事件的性质设置不同的价值和任务截止 期。将定期任务和非定期任务统一管理,综合考虑复合价值、截止期和资源 的使用情况确定任务的优先级,从而使系统运行的价值尽可能最大化。
本发明的方法可简称为价值密度-截止期-开销VDDC(Value Density-Deadline-Cost)算法,它釆用基于优先级的调度方法。但设计任务优先级时,综合考虑截止期、复合价值密度和资源开销三种因素。它基于电信级 以太网系统的若干评价因子建立评价函数来确定系统中任务的价值,评价因 子包括对任务按期执行对系统的贡献、任务响应外部事件的紧迫程度、任务 错过截止期的后果等等。
另一方面,需综合考虑任务的开销,也就是任务对资源的使用情况,如 某任务对资源的使用影响其它更重要任务的执行甚至可能危及整个系统,则 需对该任务作特别处理。
在每个调度时刻,综合考虑当前活跃任务集的截止期、复合价值密度和 资源开销等属性,动态决定任务的优先级,并基于优先级实现抢先式调度。
先给出调度时刻的定义调度时刻是指如下任一情况发生的时刻调度 时间片到,外部事件发生引起非定期任务就绪,当前执行的任务完成或执行 时间到,阻塞的高优先级任务活跃,当前执行的任务由于资源请求失败而阻 塞等等。
本发明包括如下步骤
(1) 在系统初始化阶段,统计系统的总资源i ,并表示成资源图模型i GM, 估算各中断服务程序需要的CPU时间7^[i](i表示中断向量号),估算调度模 块最坏执行情况需要的CPU时间C,设计各任务的属性并表示成任务图模 型rGAf,计算每个任务的价值和资源使用情况。
(2) 从任务图模型的底部开始,计算每个任务的复合价值。
(3) 在每个调度时刻,统计处于就绪状态的任务集&—,计算任务集的超 周期W和在超周期内的剩余执行时间之和丄C^ ,并计算当前调度时刻直至一 个超周期结束的CPU可用时间乙,。计算CPU时间时,如果调度时刻出现外 部事件引起的中断,则需去掉中断处理程序需要的执行时间,还需要去掉调 度模块最坏执行情况所需CPU执行时间的估计值。
(4) 根据CPU可用时间和任务的当前情况,判断系统是否过载,如果未过 载,则按EDF算法分配优先级。如果过载,则按照下文所述的(4)式分配各任 务的优先级。
(5) 最后按照优先级的高低进行任务调度。
根据本发明的一个方面,提供了 一种面向电信级以太网系统的基于任务 复合价值密度-截止期-开销的实时任务调度方法,包括如下步骤在每个调度 时刻,判断所述系统是否处于过载状态;如果系统处于非过载状态,采用EDF方法分配任务的优先级,如果系统处于过载状态,则基于任务复合价值密度、
任务截止期和开销来分配任务的优先级;采用基于优先级的抢先式任务调度
方式执行任务调度,以尽可能地获得最大的系统价值。
根据本发明的另一方面,提供了一种电信级以太网系统,包括判断模 块,用于在每个调度时刻判断所述系统是否处于过载状态;优先级分配模块, 如果系统处于非过载状态,则采用EDF方法分配任务的优先级,如果系统处 于过载状态,则基于任务复合价值密度、任务截止期和开销来分配任务的优 先级;调度模块,采用基于优先级的抢先式任务调度方式执行任务调度,以 尽可能地获得最大的系统价值。
归纳起来本发明有如下一些改进的地方
(1) 设计任务的自身价值时考虑了任务对系统的贡献,同时也考虑了任务 对外部事件响应的因素以及任务错过截止期时的后果。
(2) 评价任务的价值不单是考虑任务本身的价值,还考虑任务关联的任务 (也就是任务的前驱任务和后继任务)价值。
(3) 通过过载判断,使得系统在非过载的情况下,采用最优的EDF调度, 过载时则采用结合EDF的价值密度调度,可以获取尽可能大的系统价值。
CPU可用时间的影响。
(5)由于在调度之前已检查了任务之间由于资源限制带来的制约,通过对 资源不能满足的重要程度相对较低的任务降低优先级以避免死锁。


图1为基于任务复合价值密度-截止期-开销的实时任务调度方法的工作 原理示意图。
图2a为一个任务集的任务图模型示意图。 图2b为图2a所示任务集的任务属性描述图。
图2c为针对图2a所示任务集的各种静态调度方法获得的任务价值的描述。
图3a为一个实时系统的资源图模型示意图。 图3b为一个任务集的任务属性描述图。
图3c为针对图3a所示系统和3b所示任务集,采用EDF调度方法,在一个超周期内任务的执行情况。
图4a为不考虑任务的依赖关系,对任务数为16的任务集采用几种动态
调度方法的评测结果。
图4b为不考虑任务的依赖关系,对任务数为32的任务集采用几种动态 调度方法的评测结果。
图4c为不考虑任务的依赖关系,对任务数为64的任务集采用几种动态 调度方法的评测结果。
图5a为考虑任务的依赖关系,对任务数为16的任务集采用几种动态调 度方法的评测结果。
图5b为考虑任务的依赖关系,对任务数为32的任务集采用几种动态调 度方法的评测结果。
图5c为考虑任务的依赖关系,对任务数为64的任务集采用几种动态调 度方法的评测结果。
图6为本发明的电信级以太网系统的示意框图。
具体实施例方式
下面结合附图对本发明进行详细的描述。 *问题的提出
为弥补基于截止期和空闲时间的调度算法未考虑任务输出或对整个系统 的贡献的不足,有些研究提出了基于价值和价值密度的算法。基于价值的算 法给每个任务分配一个关键度表示该任务对系统的重要程度,而基于关键度 分配任务的优先级。基于价值密度的算法则在分配任务的关键度的同时考虑 该任务耗费的CPU时间,基于关键度/CPU时间来分配任务的优先级。但这 些算法的共同缺陷是,未充分考虑系统其它资源的使用情况和系统各任务之 间的相互依赖的特性,而且价值、价值密度也未能有效与截止期关联起来。 因此,基于价值和价值密度的算法在实际系统中常常不能获得良好的调度性 能。
考察图2a所示的任务图模型对应的任务集。该任务集包含的任务属性用 图2b描述,各任务都是硬截止期任务,任务的相对截止期与任务的周期相同 且相位都为0。图2c是按照RM、基于价值、基于价值密度以及最具价值执 行情况分配优先级并按照静态优先级调度的结果。图2c列出了几种调度算法
10下该任务集的执行顺序,如果"任务n/价值"列对应的单元格为空,则表明在 该调度算法下不能再加入任务,否则调度不可行。显然,用RM、基于价值、 基于价值密度等三种优先级分配方法产生的调度产生的价值距最大价值距离 甚远。
再考察一个动态优先级情况下的例子,考察图3a所示的资源图模型。而 四个任务组成的任务集如图3b所示。如果不考虑资源的限制,则在EDF调度 算法下该任务集执行情况如图3c所示。由图3b和图3c可知,该任务集的 超周期为36,在一个超周期内,任务T4共执行了 18次,每次执行l个时间 单位。任务T3共执行了 9次,每次执行1个时间单位。任务T2共执行了 3次, 每次执行2个时间单位。任务Tl共执行了 1次,每次执行3个时间单位。在 t =4, 16, 28三个时刻,任务T2没有完成执行,但被任务T4抢先。在时刻t =12, 24,任务Tl没有完成执行,但同样祐:任务T4抢先。
在资源限制的情况下,调度情况则有很大的不同。这里,假设任务对资 源的申请在任务开始时就进行,而在任务执行完毕后才释放已占用的资源。
那么,对于本例,在时刻t47,任务^和T2个执行了一个时间单位,但都没 结束,而任务T4由于截止期更近获得较高优先级,因而抢先任务T2。但抢先后, 通信带宽和緩存量大部分已被^和T2占用,不能满足T4的运行所需,而T,和T2 已被T4抢先而挂起,这时系统出现死锁。
*本发明概述
本发明的方法为VDDC算法,它采用基于优先级的调度方法。但设计任 务优先级时,综合考虑截止期、复合价值密度和资源开销三种因素。它基于 电信级以太网系统的若千评价因子建立评价函数来确定系统中任务的价值, 评价因子包括对任务按期执行对系统的贡献、任务响应外部事件的紧迫程度、 任务错过截止期的后果等等。
另一方面,需综合考虑任务的开销,也就是任务对资源的使用情况,如 某任务对资源的使用影响其它更重要任务的执行甚至可能危及整个系统,则 需对该任务作特别处理。
在每个调度时刻,综合考虑当前活跃任务集的截止期、复合价值密度和 资源开销等属性,动态决定任务的优先级,并基于优先级实现抢先式调度。
11*算法的详细描述 >任务集的相关定义
给定一个系统的任务集TS=PTUAT,其中PT是周期任务集,而AT是 非周期性任务集。PT={pt" pT2...pin},而pTi(i二l,2…n)可用属性集(Oi, Ci, Di, Pi, TU(pTi), TD(pTi), TC(p"Ci), TV(p^》来描述,各属性解释如下
Oi—任务pi的相位,也即pi的释放时间。
Ci—任务pii的执行时间,也即任务pTi在一个周期内的最坏执行时间。 Dj —任务pi的相对截止期。 Pi—任务的周期。
TU(pii)—定义TU(T)为任务T的直接前驱任务集函数,则TU(pTi)为pi的 直接前驱任务集,也就是pv义、须等到TU(pTj)的所有任务都执行完毕后才可 以开始执行。
TD(p"Ci)—定义TD(T)为任务T的直接后继任务集函数,则TD(pTj)为pii的
直接后继任务集,也就是说,TD(pTj)里的所有任务必须等到pTj执行完毕后才
可以开始扭J亍。
TCOrCi)—定义TC(T)为任务T的开销函数,则TC(pTi)为pti执行需要的全 部物理资源以及由于占用资源对系统的影响,物理资源包括处理机时间、内 存数量、关键队列、通信带宽等等。
TV(p^)--定义TVCc)为任务T的价值函数,则TV(pii)为pTj正常执行(未错 过截止期)的价值。
AT= (crc,, crc2...cn;m},而cn;!(i二l, 2…m)可以用属性集",pi, di, TU(crCi), TD(crCi), TC(crCi), TV(a"Cj) }来描述,其中^是任务crti的到达时间,可以理 解为由于某个外部事件触发而启动该任务的时间。Pi表示任务crCi的执行时间, d,是任务的截止期,如果crci没有硬截止期,则^ = +00, TU(crCi)、 TD(crCi)、 TC(crCi)、 TV(crCi)的含义分别与TU(pTi)、 TD(pO、 TC(p^)和TV(p^)相同。
>任务的价值
在 一般实时系统中,不同的周期性任务错过截止期带来的后果严重程度 不同。例如,在电信级以太网系统中,性能统计任务错过截止期,仅仅会导 致网络管理用户的抱怨,而故障检测任务错过截止期则可能导致不能提供故 障情况下的快速倒换,导致网络l史据的大量丢失。
任务T自身的价值TV(T)的具体取值可由多个因素的综合评价所得到。记任务T按期正确执行对系统的贡献为V C0,错过截止期给系统带来的后果为 R(T),响应外部事件的紧迫等级为G(T),则可用下面的(1)式计算TV(T),
7T(r) = a, * + a2 *脉)+ a3 * (1)
在(1 )式中A- 3是各子项的系数,表示各评价因子在综合评价中所占权重。 >任务的复合价值
定义任务T的复合价值CTV(T)定义为任务自身的价值和它的所有后继任 务对该任务的附加价值之和,其中,所述任务的后继任务是指必须等到所述
任务执行完毕后才可以开始执行的任务。以r(Ti, Tj)表示任务Tj对任务Tj产生
的附加价值,r(Tj, Tj)和CTV(T)分别可以由下面的(2)和(3)式计算。
'0 如果r不是r的直接后继 r(r,r)H i (2)
'Lcrr(、)/層(777(20))如果fj是r,的直接后继
C7r(r)= 7T(r) +力r(r, r,) (3)
在(2)式中,其中,r(Ti, Tj)表示任务Tj对任务Tj产生的附加价值,函数
MN(TU(ij))用于获得集合TU(Tj)的成员个数,TU(Tj)是任务ij的直接前驱任务集。
>任务的开销
任务T的开销TC(T)的具体取值也是由各资源的使用情况得到,例如任务 (T)正常执行占用处理器的情况、占用内存资源的情况、占用关键队列的情况
以及占用通信带宽的情况等等。如果某项资源在任务按任何顺序执行时都能 够完全满足要求,则该资源不影响任务的调度,因此,开销带来的影响主要 是在某项资源不能完全满足要求时才发生作用。 >与价值有关的定理
在表述定理之前,先给出几个定义。系统过载在某个时刻,如果系统
不能对所有的请求给以及时的响应,导致某些请求错过截止期,则称在那个
时刻系统过载。系统价值在某个时间段内,系统执行的所有任务对系统的 贡献总和称为那段时间的系统价值。
定理l:在系统不处于过载的情况下,不存在任何一种调度算法,它获得 的系统价值比EDF算法大。
证明如果调度的任务集S由n个任务组成,如果采取某种调度算法,使得这n个任务的执行都不存在超过执行截止期的情况,则得到的系统价值 最大。而在系统不处于过载的情况下,EDF调度算法是最优的。也就是对任 一任务集,只要存在一种调度算法可调度,那EDF调度算法必然也可调度。 那么,在系统不处于过载的情况下,EDF调度算法获得的系统价值已经最大 化,也就意味着不存在任何一种调度算法,它获得的系统价值比EDF算法大。 定理1说明,在无过载现象出现时,EDF算法在系统价值方面仍然是最优。
定理2:在系统处于过载的情况下,EDF算法的获得的最大系统价值的 概率随任务数的增加而减少。
证明不失一般性,假设系统中的所有任务都具有硬截止期,且相对截 止期等于任务的周期(非定期任务可看作只有一个周期的定期任务)。由于系统 过载,也就是说所有活跃任务需要的处理器使用率之和大于1,实质上意味 着采用EDF算法调度该任务集不可行,换句话说至少存在某个任务的某个实 例错过截止期。
如果是定期任务的某个实例错过截止期,那么定期任务的特点决定了其 某个实例错过截止期将产生多米诺效应,导致后面的所有实例错过截止期。 而非定期任务可看成只有一个实例的定期任务,它错过截止期实际上也意味 着整个任务失效。因此,该任务调度可以看作是去掉错过截止期任务的可行调度。
假设只有一个任务错过截止期,且错过的任务为"1<=1<=11), 一般来说
任务的价值不依赖于任务的截止期,那么从EDF调度算法的特点可知,用Tr
去替换可调度任务集中任何一个任务调度仍然可行。那么只有当可调度任务
集中的所有任务的价值高于Tr时EDF调度算法才获得最大的系统价值。这种
情况下EDF调度算法获得最大价值的概率;^1/《。用同样的分析可得到,当 有r个任务错过截止期时,EDF调度算法获得最大价值的概率;^1/C:。显然, 在11>=2时,定理成立。
定理2说明,在系统过载的情况下,采用EDF算法调度在大多数情况下不 会获得最大的系统价值。这也表明在系统过载情况下,调度算法有改进的余 地。
>算法的优先级设置
在系统过载时,该算法中的任务的优先级的设置综合考虑了任务复合价值密度、任务截止期以及任务的开销等多重因素。
定义任务T的综合优先数为户i^), AD("为T的截止期,则尸/ (^)可以由
下面的(4)式计算。
》餘)=,(7Y(r)/ZC(r)), 7T(r))
f+00 如果是A =乂 C 如果是B
< ^D(r)-r如果不是(A或B) (4)
A=(3 r,, t, ", C2T(7"i) /丄C(^ ) > C7T(r) / £C(r), r 4 !r,) B=(3 ^, r, # r, CrK^i) /丄C(^ ) > C7T"(r) / ^C(r), r — # r,)^。
D = {V r,, r, Crr (r,) / ^C(r,) > C7T(r) /丄CO), t — # ^} 在(4)式中,C7TTTi)表示任务Ti的复合任务价值,^Drr)表示T的截止期, T表示进行调度的时间,LC(Tj)表示任务Ti的剩余执行时间,r —!r,表示由于T 的调度,^将错过截止期,r — ^表示由于T的调度和资源申请,Ti将申请不 到某项资源,TC(T)为任务T的开销,TV(T)为任务T自身的价值。任务的优先数 越大,该任务的调度优先级越低。 >算法描述
先给出调度时刻的定义调度时刻是指如下任一情况发生的时刻调度 时间片到,外部事件发生引起非定期任务就绪,当前执行的任务完成或执行 时间到,阻塞的高优先级任务活跃,当前执行的任务由于资源请求失败而阻
塞等等。
算法开始阶段,也就是在系统初始化阶段,统计系统的总资源i ,并表 示成资源图模型i GM,估算各中断服务程序需要的CPU时间7^[i](i表示中 断向量号),估算调度模块最坏执行情况需要的CPU时间L,设计各任务的 属性并表示成任务图模型7UM,计算每个任务的价值和资源使用情况。可以 按照上述(l)式计算每个任务的价值。将系统的总资源/ ,表示成资源图模型 i GM的方法以及将各任务表示成任务图模型rGM的方法是本领域公知的, 因此为简单起见而在这里省略对它们的描述。
然后,从任务图模型的底部开始,计算每个任务的复合价值。可以按照 上述(2)式和(3)式计算每个任务的复合价值。
随后,生成调度服务进程并使其处于休眠状态。状态的任务集&—,计算任务集的超周 期M和在超周期内的剩余执行时间之和£Cram ,并计算当前调度时刻直至一个
超周期结束的CPU可用时间r。v,。计算CPU时间时,如果调度时刻出现外部
事件引起的中断,则需去掉中断处理程序需要的执行时间,还需要去掉调度 模块最坏执行情况所需CPU执行时间的估计值。
然后4艮据CPU可用时间和任务的当前情况,判断系统是否过载,如果系 统未过载,则按EDF算法分配各任务的优先级。如果系统过载,则基于任务 的复合价值密度、任务的截止期和任务的开销来分配任务的优先级,例如, 可以按照上式(4)分配各任务的优先级。
最后按照各任务的优先级的高低进行抢先式任务调度。算法的具体实现 参见图1。
*算法带来的改进
归纳起来算法有如下一些改进的地方
(1) 设计任务的自身价值时考虑了任务对系统的贡献,同时也考虑了任务 对外部事件响应的因素以及任务错过截止期时的后果。
(2) 评价任务的价值不单是考虑任务本身的价值,还考虑与该任务关联的 任务(也就是任务的前驱任务和后继任务)价值。
(3) 通过过载判断,使得系统在非过载的情况下,采用最优的EDF调度, 过载时则采用结合EDF的价值密度调度,可以获取尽可能大的系统价值。
(4) 同时考虑中断服务程序的执行时间和任务调度模块的执行时间对 CPU可用时间的影响。
(5) 由于在调度之前已检查了任务之间由于资源限制带来的制约,通过对 资源不能满足的重要程度相对较低的任务降低优先级以避免死锁。
參才莫拟测试、分析和应用
>才莫拟测试和分析
为了对VDDC方法的性能进行合理的评价,设计了一个应用程序来模拟 任务调度的过程。该程序一共实现了四种调度算法EDF、基于价值、基于 价值密度和VDDC方法。该程序模拟调度使用的任务的贡献值、资源情况、 截止期、执行时间等属性,任务之间的依赖关系,以及中断产生的时机和中
16断向量号都由伪随机数发生器生成。程序的输入是任务集的任务个数、中断 源的个数和模拟调度次数等信息,程序的输出是四种调度算法得到的系统价值。
首先模拟的是任务之间没有相互制约和相互依赖关系的情况,也就是说, 任务之间没有执行的先后顺序,所有的资源也都能满足所有任务的需要。在
这种情况下,VDDC方法实际上相当于运行在它的一个简化版本下。通过记 录每次模拟调度得到的四种调度算法的系统价值并绘制成折线图,可得到图 4a、 4b和4c。
在图4a、 4b和4c中,横轴表示的是每次调度任务集中所有任务正常执 行将导致的CPU利用率,大于1的值表示系统将处于过载情况,反之则系统 没有处于过载情况。纵轴则表示调度算法产生的系统价值。图4a、 4b和4c 分别是任务数为16、 32和64时的模拟调度结果。
从图4a、 4b和4c可以看出,在非过载的情况下,EDF算法产生的系统 价值不小于其它三种算法,大部分情况下优于基于价值和基于价值密度的方 法。而在过载情况下,如果以系统价值评价调度算法的性能,则EDF算法的 性能非常差,是这四种方法中最差的。而对于VDDC方法,虽然在个别实例 中,产生的系统价值低于其它三种方法,但产生的系统价值的平均值则是最 好的。
接着模拟任务之间存在执行顺序关系和资源限制的情况。同样,通过记 录每次模拟调度得到的四种调度算法的系统价值并绘制成折线图,可得到图 5a、 5b和5c。由图5a、 5b和5c可以看出,在考虑任务存在执行顺序和资源 约束的情况下,如果系统过载,则VDDC方法所产生的系统价值远比其它三
种方法好。
可用于实现本发明的VDDC方法的电信级以太网系统如图6所示。该电 信级以太网系统100包括任务价值确定模块102、任务复合价值确定模块104、 开销确定模块106、判断模块108、优先级分配模块IIO和调度模块112,并 且寺丸行上述VDDC方法。
任务价值确定模块102在系统初始化阶段,统计系统的总资源i ,并表 示成资源图模型i GM,估算各中断服务程序需要的CPU时间?L[i](i表示中 断向量号),估算调度模块最坏执行情况需要的CPU时间T^,设计各任务的 属性并表示成任务图模型TGM,计算每个任务的价值和资源使用情况。可以
17按照上述(1 )式计算每个任务的价值。
任务复合价值确定模块104从任务图模型的底部开始,计算每个任务的
复合价值。可以按照上述(2)式和(3)式计算每个任务的复合价值。
开销确定模块106在每个调度时刻,统计处于就绪状态的任务集^—, 计算任务集的超周期^和在超周期内的剩余执行时间之和丄C,,并计算当前 调度时刻直至一个超周期结束的CPU可用时间rav,。计算CPU时间时,如果 调度时刻出现外部事件引起的中断,则需去掉中断处理程序需要的执行时间, 还需要去掉调度模块最坏执行情况所需CPU执行时间的估计值。
判断模块108根据CPU可用时间和任务的当前情况,判断系统100是否 过载。
优先级分配模块IIO根据判断模块108的判断结果来分配各任务的优先 级。如果系统未过载,则优先级分配模块IIO按EDF算法分配各任务的优先 级。如果系统过载,则优先级分配模块110基于任务的复合价值密度、任务 的截止期和任务的开销来分配任务的优先级,例如,可以按照上式(4)分配各 任务的优先级。
调度模块112按照分配给各任务的优先级的高低进行抢先式任务调度。 应当认识到,所述系统及其各个模块可以用硬件、软件、或者硬件和软 件的组合来实现。
>实现和应用
本发明的上述方法和系统在烽火网络公司自主开发的M8428电信级以太 网设备(以下简称M8428设备)上开始实现和应用。M8428设备背板交换带宽 为800G,单一交换控制盘交换容量为400G。 M8428设备具有两个主控槽位、 8个业务槽位,两块主控卡同时在位时实行1: 1保护。该设备最多可支持384 个10/100/1000端口、 192个千兆接口以及16个IOGE接口。
M8428设备的软件子系统本身设计的任务共有73个。为应用VDDC方 法,设计一个高优先级任务VDDC Server来实现VDDC算法,因此系统共有 74个任务。由于M8428设备配置很高,资源方面能够满足应用要求,因此, 应用VDDC算法时简化了对资源约束的处理。同时,为了能将标志调度时刻 的各种事件通告到VDDC Server任务,设计了 一个操作系统核心适配层将操 作系统的任务同步和通信等核心功能调用封装起来,以便各任务调用。有关各任务的设计并不需修改代码,只是涉及系统功能调用部分的标识符被重定 义为核心适配层的功能,而不是原操作系统本身提供的功能。同时在操作系 统核心控制块外,定义一个任务扩展描述块来存放任务的各个属性及任务之 间的关系等信息,对于中断来说,除中断向量外,还定义一个扩展中断描述 结构存放中断服务程序的执行时间等操作。
每个调度时刻,VDDC Server首先被激活,然后执行VDDC算法,得到 各个任务的优先数,将这个优先数映射为操作系统的优先级并重新分配给各 任务,然后VDDC Server自动挂起,让其它任务按照优先级调度。
目前M8428设备上带有VDDC Server的软件子系统运行情况良好。 综上所述,本发明的基于任务复合价值密度、截止期和开销的实时任务 调度方法和电信级以太网系统以任务执行对系统的综合贡献(价值)为设计目 标,同时兼顾任务的截止期和任务对系统资源的使用情况等因素。设计任务 的价值时,合理考虑外部事件的紧急程度,以改善对外部事件的响应和处理 速度,同时考虑任务之间的依赖性及资源的使用情况。当外部事件发生时, 既考虑处理外部事件的中断处理程序的执行时间,同时被中断服务程序激活
的非定期任务可根据事件的性质设置不同的价值和任务截止期。将定期任务 和非定期任务统一管理,综合考虑复合价值密度、截止期和资源的使用情况
确定任务的优先级,从而使系统运行的价值尽可能最大化。
尽管已经示出和描述了本发明的示例实施例,本领域技术人员应当理解, 在不背离权利要求及其等价物中限定的本发明的范围和精神的情况下,可以 对这些示例实施例做出各种形式和细节上的变化。
权利要求
1. 一种面向电信级以太网系统的实时任务调度方法,包括如下步骤在每个调度时刻,判断所述系统是否处于过载状态;如果系统处于非过载状态,采用早截止期优先EDF方法分配任务的优先级,如果系统处于过载状态,则基于任务复合价值密度、任务截止期和开销来分配任务的优先级;采用基于优先级的抢先式任务调度方式执行任务调度,以尽可能地获得最大的系统价值。
2. 如权利要求1所述的面向电信级以太网系统的实时任务调度方法,其特征在于当系统处于过载状态时,通过下式来分配任务的优先级 》附=,(7r(r)/ZC(r)), rC(r))f+00 如果是A =jC 如果是B , ^D(r)-r如果不是(A或B)A=(3 ^ r, C7T(r,) /丄C(r,) 〉 C7Y(r) / ZCO), r — !r,) B=(3 r,, r, ", C7T(ri) /) > C7T(r) /丄C(r), H # r;) C = M4Z(i^(r,) + l)D = {V "r', & ^ r, ) /丄C(5) > C7T(r) /丄C(r), r — # r;}在上式中,尸i fT)表示任务T的综合优先数,C7Tfc)表示任务T的复合价值, 」DW表示任务T的截止期,r表示进行调度的时间,LC(Ti)表示任务Tj的剩余 执行时间,r — ki表示由于T的调度,Ti将错过截止期,r — ^,表示由于T的调 度和资源申请,Ti将申请不到某项资源,TCCc)为任务T的开销,TVCO为任务T 的价值,其中,任务的优先数越大,该任务的调度优先级越低。
3. 如权利要求2所述的面向电信级以太网系统的实时任务调度方法,其 特征在于C7Y^)为任务T自身的价值与其所有后继任务对任务T的附加价值之和。
4. 如权利要求2或3所述的面向电信级以太网系统的实时任务调度方 法,其特征在于C7TTt)由下列算式决定f 0 如果r」不是r,的直接后继r(r',r》—ic7r(s)/MV(7I/0",))如果r」是r,的直接后继C7T(r)= 7T(r) +尤r(r, r,)其中,r(Ti, Tj)表示任务Tj对任务Ti产生的附加价值,函数MN(TU(Tj))用于获得集合TU(i:j)的成员个数,TU(Tj)是任务Tj的直接前驱任务集。
5. 如权利要求4所述的面向电信级以太网系统的实时任务调度方法,其 特征在于2Trx)由下列算式决定7T(r) =* + "2 *餘)+ "3 * G(r)在上式中,VCc)是表示任务T按期正确执行对系统的贡献的评价因子,R(T) 是表示任务T错过截止期给系统带来的后果的评价因子,G(T)表示任务T响应外 部事件的紧迫等级的评价因子,a,《3是表示所述各评价因子在综合评价中所 占的权重。
6. —种电信级以太网系统,包括判断模块,用于在每个调度时刻判断所述系统是否处于过载状态; 优先级分配模块,如果系统处于非过载状态,则采用早截止期优先EDF方法分配任务的优先级,如果系统处于过载状态,则基于任务复合价值密度、任务截止期和开销来分配任务的优先级;调度模块,采用基于优先级的抢先式任务调度方式执行任务调度,以尽可能地获得最大的系统价值。
7. 如权利要求6所述的电信级以太网系统,其特征在于当系统处于过载状态时,优先级分配模块通过下式来分配任务的优先级 》竭=《(r,,r) ,(7T(r)/丄C(0), 7T(r))f+00 如果是A =] C 如果是B< ^D(r)-r如果不是(A或B)八=(3^ # r,C7y(ri)/ZC0,) > C7T(r)/丄C(r),t 4 !r,) B=(3 r, r, C7Y) /丄C(r,) > C7Y(t) / ZC(r), r — # ^) C = M4X(Pi (r,) + l)£) = {V r,, r, # r, CrK(^ ) /丄C(^i) > C7Y(r) /丄C(t), r ^ # ^ }在上式中,户i (T)表示任务T的综合优先数,C7TTT)表示任务T的复合价值, JZ^T)表示任务T的截止期,T表示进行调度的时间,LC(Ti)表示任务Ti的剩余 执行时间,r—!rj表示由于T的调度,T,将错过截止期,r — ^,表示由于T的调 度和资源申请,Ti将申请不到某项资源,TC(T)为任务T的开销,TV(T)为任务T 自身的价值,其中,任务的优先数越大,该任务的调度优先级越低。
8. 如权利要求7所述的电信级以太网系统,还包括 任务复合价值确定模块,用于确定所述C7Tfc),所述C7Y(x)为任务T自身的价值与其所有后继任务对任务T的附加价值之和。
9. 如权利要求7或8所述的电信级以太网系统,其特征在于任务复合 价值确定模块按照下式来确定C7Yfx):其中,r(Ti, Tj)表示任务Tj对任务T;i产生的附加价值,函数MN(TU(Xj))用于获得集合TU(Tj)的成员个数,TU(Tj)是任务Tj的直接前驱任务集。
10.如权利要求9所述的电信级以太网系统,还包括 价值确定模块,用于按照下式确定所述7Y(t):在上式中,V(T)是表示任务T按期正确执行对系统的贡献的评价因子,R(T) 是表示任务T错过截止期给系统带来的后果的评价因子,G(T)表示任务T响应外部事件的紧迫等级的评价因子,a,-a3是表示所述各评价因子在综合评价中所 占的权重。C7T(r)= 7T(r) + yr(r,
全文摘要
本发明提供了一种面向电信级以太网系统的基于任务复合价值密度-截止期-开销的实时任务调度方法和电信级以太网系统,所述方法包括在每个调度时刻,判断所述系统是否处于过载状态;如果系统处于非过载状态,采用早截止期优先EDF方法分配任务的优先级,如果系统处于过载状态,则基于任务复合价值密度、任务截止期和开销来分配任务的优先级;采用基于优先级的抢先式任务调度方式执行任务调度,以尽可能地获得最大的系统价值。
文档编号G06F9/46GK101499019SQ20091012826
公开日2009年8月5日 申请日期2009年3月24日 优先权日2009年3月24日
发明者余少华, 戴锦友, 李念军 申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1