一种适用于数控系统实时调度的方法
【技术领域】
[0001] 本发明涉及实时系统领域的任务容错实时调度技术,具体是一种适用于数控系统 的实时调度算法。
【背景技术】
[0002] 数控系统不仅需要保证其实时任务在规定时限内正确完成,还需要保证系统在 出现错误时能够提供标准或降级服务。若系统不能在规定时限内输出正确结果,将严 重影响工件的加工质量,甚至造成安全生产隐患。容错技术通过增加冗余资源的方法 来屏蔽故障对系统功能的影响,针对单处理器实时系统中的软件运行故障,Ching-chih Han等人发表的《AFault-TolerantSchedulingAlgorithmforReal-TimePeriodic TaskswithPossibleSoftwareFaults》(干丨J物《IEEETransactionsonComputers》 2003, 52 (3) : 362-372)对主/副版本容错技术进行研究,提出了基于截止期限机制的BCE算 法。BCE在调度前采用固定优先级调度策略为副版本预分配处理器时间,并在调度过程中采 用CAT子算法预测主版本的可执行性,选择可行的主版本执行,同时采用EIT子算法在系统 空闲时选择副版本提前执行,以避免处理器时间的浪费,获得较好的调度性能。处理器利用 率较高时,CAT子算法的预测精度较低,无法有效地避免处理器时间的浪费。韩建军等人在 《基于软件容错的动态实时调度算法》(期刊《计算机研究与发展》2005, 42 (2) : 315-321)中 对CAT子算法的预测精确性进行改进,提出了PKSA(EBPA)和CUBA算法,通过若干次试探 性检测可取得较CAT子算法更优的预测准确性,其试探次数的确定以及有限次试探操作使 得算法的在线开销太大。
[0003] 此外,现有基于主/副版本容错技术的实时调度算法所采用的预分配子算法所确 定的副版本预留处理器时间在任务调度过程中需要动态调整,这将增加系统的调度开销, 并降低算法对主版本可执行性的预测精度。
【发明内容】
[0004] 针对现有技术中实时调度算法调度性能不佳且调度开销太大的情况,本发明要解 决的技术问题是提供一种改善算法调度性能并降低处理时间的一种适用于数控系统实时 调度的方法。
[0005] 为解决上述技术问题,本发明采用的技术方案是:一种适用于数控系统实时调度 的方法,包括以下步骤:
[0006] 为数控系统中每个实时任务定义两种相互独立的可执行版本:主版本和副版本;
[0007] 采用预分配算法为副版本预留处理器时间,确定副版本的通知时刻;
[0008] 数控系统运行时,采用RM算法对主版本进行调度,在每个调度时刻,采用预测算 法逐个检测当前就绪队列中的就绪任务的主版本的可执行性,并调度执行经预测可执行的 主版本;
[0009] 如果在副版本的通知时刻前主版本成功完成调度,则撤销其对应副版本,并释放 为副版本预分配的处理器时间;如果执行到副版本的通知时刻对应主版本尚未完成,副版 本抢占当前主版本执行,并终止对应主版本。
[0010] 所述任务的副版本为主版本功能的简单实现,提供应用可接受的低精度结果,副 版本的执行时间小于等于主版本的执行时间。
[0011] 所述采用预分配算法为副版本预留处理器时间,确定副版本的通知时刻,具体 为:
[0012] 副版本在预分配过程中占用的时间间隔为其运行时的预留处理器时间,副版本的 预留处理器时间段的起始时刻即为副版本的通知时刻。
[0013] 所述预测算法通过计算主版本在[t,STu]内的可用处理器时间来检测主 版本Pi,j是否可执行的计算公式为:
[0014]
【主权项】
1. 一种适用于数控系统实时调度的方法,其特征在于,包括以下步骤: 为数控系统中每个实时任务定义两种相互独立的可执行版本:主版本和副版本; 采用预分配算法为副版本预留处理器时间,确定副版本的通知时刻; 数控系统运行时,采用RM算法对主版本进行调度,在每个调度时刻,采用预测算法逐 个检测当前就绪队列中的就绪任务的主版本的可执行性,并调度执行经预测可执行的主版 本; 如果在副版本的通知时刻前主版本成功完成调度,则撤销其对应副版本,并释放为副 版本预分配的处理器时间;如果执行到副版本的通知时刻对应主版本尚未完成,副版本抢 占当前主版本执行,并终止对应主版本。
2. 根据权利要求1所述的一种适用于数控系统实时调度的方法,其特征在于,所述任 务的副版本为主版本功能的简单实现,提供应用可接受的低精度结果,副版本的执行时间 小于等于主版本的执行时间。
3. 根据权利要求1所述的一种适用于数控系统实时调度的方法,其特征在于,所述采 用预分配算法为副版本预留处理器时间,确定副版本的通知时刻,具体为: 副版本在预分配过程中占用的时间间隔为其运行时的预留处理器时间,副版本的预留 处理器时间段的起始时刻即为副版本的通知时刻。
4. 根据权利要求1所述的一种适用于数控系统实时调度的方法,其特征在于,所述预 测算法通过计算主版本Pu在[t,SU内的可用处理器时间来检测主版本Pu是否可 执行的计算公式为:
其中,集合A+Set^Ut彡STx,y彡STy},表示预留处理器时间位于[t,STi,j]内的 副版本集合,STi;j为副版本的通知时亥lj,集合hp⑴={TjGrIpriopprioJ表示优先级高 于t,的任务集合,(给出公式中各参数的含义); 在调度时刻t,主版本Pi;」的剩余执行时间为remain^」,则预测算法判断Pi;」可执行的 充分条件是。
【专利摘要】本发明涉及一种适用于数控系统实时调度的方法。其步骤在于包括:为数控系统中每个实时任务定义两种相互独立可执行版本:主版本和副版本;任务调度前,采用InvSeq_Preallocation预分配子算法为副版本预留处理器时间,确定副版本的通知时刻;采用固定优先级调度算法对主版本进行调度,在每个调度时刻,采用PPA预测子算法逐个检测当前就绪队列中的就绪任务主版本的可执行性,并调度执行经检测可执行的主版本;主版本成功完成时,撤销其对应副版本,并释放为副版本预分配的处理器时间;当执行到副版本的通知时刻时,副版本抢占当前主版本执行,并终止对应主版本。本发明能够提供更精确的主版本可执行性预测,从而有效避免处理器时间的浪费,提高主版本的成功率。
【IPC分类】G05B19-18
【公开号】CN104570915
【申请号】CN201310470415
【发明人】郭锐锋, 刘娴, 王鸿亮, 张忆文, 卜霄菲
【申请人】中国科学院沈阳计算技术研究所有限公司
【公开日】2015年4月29日
【申请日】2013年10月9日