一种适用于数控系统的混合任务调度方法

文档序号:9864602阅读:154来源:国知局
一种适用于数控系统的混合任务调度方法
【技术领域】
[0001] 本发明设及实时数控系统领域,具体是一种适用于数控系统的混合任务调度方 法。
【背景技术】
[0002] 数控系统负责实时控制数控机床的正确运行,所处理的任务按触发时间的周期性 及是否具有实时性要求,可分为实时周期任务、偶发任务和非周期任务。为了保证数控系统 的加工质量,需对其混合任务进行合理调度,在保证实时周期任务与偶发任务的实时性要 求的同时,尽可能缩短非周期任务的响应时间。
[0003] 传统的后台执行法在系统中没有已就绪的实时周期任务或偶发任务时调度执行 非周期任务,此方法易于实现,但在系统具有较高的周期任务负载时,非周期任务可用的处 理器时间过少,其响应时间不可预测。
[0004] Spuri 等人发表的《Scheduling aperiodic tasks in dynamic priority systems》(刊物《Journal of Real-Time Systems》1996, 10(2) :179-210)提出了邸L Server算法,通过精确计算实时周期任务调度中的空闲时间的分布及大小,并将空闲时间 尽可能提前,使非周期任务尽快得到响应。邸L Server算法能够提供最短的非周期任务响 应时间,但它在每个非周期任务到达时都需要计算当前的空闲时间,最坏情况下算法的计 算复杂度为〇(N · η),(其中,η表示系统中实时周期任务的个数,N表示运η个周期任务的 总作业数),其计算开销过大而不适于实际应用。 阳〇化]涂刚等人发表的《基于动态优先级策略的最优软非周期任务调度算法》(刊物《计 算机研究与发展2004, 41 (11) :2026-2034.》)提出了 ISA算法,离线地确定实时周期任务的 执行区间及空闲区间等相关参数,并在任务调度过程中同步更新相关参数,当非周期任务 到达时,根据当前参数值计算非周期任务可用的最大空闲时间。此算法需要存储并维护大 量参数,其计算及存储开销较大。

【发明内容】

[0006] 针对现有技术中混合任务调度算法在在改善算法调度性能并降低算法调度开销 方面存在的不足之处,本发明要解决的技术问题是提供一种适用于数控系统的混合任务调 度方法。
[0007] 为解决上述技术问题,本发明采用的技术方案是:一种适用于数控系统的混合任 务调度方法,包括W下步骤:
[0008] 步骤1)为数控系统中的实时周期任务与非周期任务建立计算模型;
[0009] 步骤2)任务调度开始前,通过离线的预分配算法为实时周期任务预留处理器时 间,确定实时周期任务的通知时间表;
[0010] 步骤3)任务调度开始后,根据实时周期任务的通知时间表对数控系统中的实时 周期任务与非周期任务进行混合调度。
[0011] 所述实时周期任务的计算模型为:实时周期任务用集合Γρ= (τ 1,τ 2,...,τ。} 表示,每个实时周期任务τ 1用四元组< φ i,Ti,Di,Ci>表示,其中,1《i《η,η为实时周 期任务的数量,Φι为τ 1的相位,Ti为τ 1的周期,Di为τ 1的相对截止时限,Ci为τ 1的 执行时间;第i个实时周期任务τ 1的第j次作业表示为τ 1,。
[0012] 所述非周期任务的计算模型为:数控系统中已到达的非周期任务构成集合Γ\ρ = {>1,〇2,...},每个非周期任务Uk用二元组<rk,ek>表示,其中,k为自然数,r,表示υ k 的到达时间,ek表示υ k的执行时间。
[0013] 所述离线的预分配算法采用反向邸F算法计算每个实时周期任务的每次作业的 预留处理器时间的起始时刻。
[0014] 所述实时周期任务的通知时间表α由实时周期任务用集合Γρ中各个实时周期 作业的预留处理器时间按先后顺序排列而成。
[0015] 所述任务调度开始后,根据实时周期任务的通知时间表对数控系统中的实时周期 任务与非周期任务进行混合调度,包括W下步骤:
[0016] W通知时间表α为输入,从时刻0开始对实时周期任务Γ Ρ进行邸F调度;
[0017] 在调度时刻t,若无待执行的非周期任务,则调度执行实时周期任务的作业序列, 根据实时周期作业的执行情况同步更新实时周期任务的通知时间表α ;
[0018] 若有待执行的非周期任务到达,将该非周期任务插入到非周期任务队列,当时刻t =α-head时,设α-head = am。,则作业Tm。抢占其他周期任务及非周期任务执行直至作 业τ。。完成,更新实时周期任务的通知时间表α ;当时刻t< a-head时,则从非周期任务 队列的首任务开始,顺序执行非周期任务队列中的非周期任务,直至非周期任务队列为空 或到达通知时间表的首元素时间α -head ;若既无待执行的非周期任务,也无已就绪的实 时周期作业,则处理器空闲,设置时刻t为下一调度时刻;
[0019] 重复执行上一步骤直至超周期结束;所述超周期为所有实时周期任务的周期的最 小公倍数。
[0020] 所述更新实时周期任务的通知时间表包括W下步骤:当实时周期作业τ 1,在时刻 ti执行了 X个时间单位,则后移作业τ。的预留处理器时间的起始时刻aw使τ。的预留 处理器时间减少X个时间单位,同时调整其余受影响的节点;当τ 1,完成时,从通知时间表 α中删除曰。节点。
[0021] 所述若有待执行的非周期任务到达,将该非周期任务按先到先服务的原则插入到 非周期任务队列。
[0022] 本发明能够在保证实时周期任务的截止时限要求的同时,W较小的计算及存储开 销取得最短的非周期任务响应时间。
【附图说明】 阳02引图1为实施例中任务集Γρ?= { τ 1,Τζ} = { < 0,5,2 >,< 0,9,4 > }在 backwards-EDF算法下的预分配结果;
[0024]图 2 为实施例中任务集 Γρ?= { τ 1,τ 2} = { < 0, 5, 2 >,< 0, 9, 4 > }与 Tapi ={>1,uj = (<11,3>,<27,4>}在本发明方法下的混合调度结果; 阳0巧]图3为混合调度算法的性能随Up变化的情况;
[0026] 其中,图3(a)为非周期作业平均响应时间随Up变化的情况,图3(b)为非周期作 业完成率随Up变化的情况。
【具体实施方式】
[0027] 下面结合附图及实施例对本发明做进一步的详细说明。
[0028] 考虑数控系统中的实时周期性任务与非周期性任务的混合调度。将系统中所有 实时周期任务用集合Γρ= (τ 1,τ 2,...,τ。}表示,η e妒为实时周期任务的个数。每 个实时周期任务了1(1《1《11)用四元组<(1)1,1'1,〇1,。>表示,其中(1)1为11的相位, Ti为τ 1的周期,Di为τ 1的相对截止时限,Ci为τ 1的执行时间。实时周期性任务的每一 次执行称为它的一个作业,所W不是同一个概念。i用来标识任务,j用来标识运个任务的 第几次执行,也就是第几个作业。Τι的第j次执行记为作业Τι,,Τι,的到达时间Γι,= (j-1) *Ti,截止时限di.j= (j-1) *Ti+Di,Φ?=;Τ??。厂Ρ中所有任务周期的最小公倍数记 为Γrp=LCM巧,Γ?,...,7;),将7;i称为Γp的超周期。本模型假定实时周期任务τl满足Φl = 0,町二Ti,且各个任务之间相互独立。系统中所有实时周期任务的处理器总利用率记为
将系统中的非周期任务Uk化为自然数)用二元组<^6,>表示,其中r,表示 Uk的到达时间,6k表示υ k的执行时间,非周期任务的属性在任务到达时才可知。系统中 已到达的非周期任务构成集合Γ\ρ= (υ 1,U 2,...},将非周期任务到达的平均间隔时间记 为Τ。。,则非周期任务负截
[0029] 本发明为一种基于预分配的空闲挪用算法(Preallocation-based Slack-Stealing Algorithm, PSSA),简称PSSA算法。PSSA算法基于上述建立的计算模型, 对数控系统中的实时周期任务和非周期任务进行混合调度,其处理过程包含离线的处理器 时间预分配和运行时的混合任务调度两部分。
[0030] 为了保证非周期任务的执行不影响实时周期任务的可调度性,在任务调度开始 前,采用反向邸F(backwards-邸巧算法(该算法在【背景技术】中提及的Spuri等人发表的 《Schedulin邑 aperiodic tasks in dynamic priority systems》中有相应论述),在[化再,1 内从时刻咕开始至时刻0为止,对实时周期任务集Γρ进行反向调度。将反向调度过程中 各个实时周期作业占用的处理器时间作为其在任务集正向调度过程中预留执行时间。 阳031] 定义1.作业τ i.j的通知时间a i.j:在厂Ρ的backwards-EDF调度结果中,作业τ U 的完成时间称为τ。的通知时间,记为ay。任务集正向调度过程中,在ay时刻,若τ。尚 未完成,则Ti,抢占其他任务执行。 阳〇巧定义2. Γρ的通知时间表α :将Γ P在backwards-EDF调度得到的各个实时周期 作业的通知时间按先后顺序排列向量,构成通知时间表α,α
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1