CN102540968B - 一种面向数控系统的数据流反馈调度方法 - Google Patents

一种面向数控系统的数据流反馈调度方法 Download PDF

Info

Publication number
CN102540968B
CN102540968B CN2010105807339A CN201010580733A CN102540968B CN 102540968 B CN102540968 B CN 102540968B CN 2010105807339 A CN2010105807339 A CN 2010105807339A CN 201010580733 A CN201010580733 A CN 201010580733A CN 102540968 B CN102540968 B CN 102540968B
Authority
CN
China
Prior art keywords
buffer memory
task
time
underflow
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2010105807339A
Other languages
English (en)
Other versions
CN102540968A (zh
Inventor
于东
秦承刚
吴文江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Zhongke CNC Technology Co.,Ltd.
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Shenyang Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd, Shenyang Institute of Computing Technology of CAS filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN2010105807339A priority Critical patent/CN102540968B/zh
Publication of CN102540968A publication Critical patent/CN102540968A/zh
Application granted granted Critical
Publication of CN102540968B publication Critical patent/CN102540968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种面向数控系统的数据流反馈调度方法,包括以下步骤:监测全软件数控系统的数据流中各个缓存的状态;建立实时反馈调度框架,利用该框架判断某个缓存是否已经下溢,当没有发生下溢时,则评估各个缓存发生下溢的危险性;当缓存存在下溢危险性过大时,即数据流中断的危险较大时,则调整相关实时任务的调度周期,并降低由调整调度周期带来的系统开销。本发明提供了一种针对数据流结构的反馈调度方法,克服了全软件数控系统中会出现数据流中断的不足,可以预防全软件数控系统中数据流中断现象的发生,免了关键任务产生数据饥饿现象,提高了全软件数控系统的加工速度和加工质量。

Description

一种面向数控系统的数据流反馈调度方法
技术领域
本发明涉及一种实时调度领域,具体的说是一种面向数控系统的数据流反馈调度方法。
背景技术
全软件数控系统的软件结构中,存在一条自顶向下逐层处理数据的数据流。数据流上的周期任务实现了数控系统的核心功能。上游任务的输出是下游任务的输入,各个任务通过共享缓存交换数据,如图1所示。数据流式的结构降低了任务间的耦合程度,但实时性较高的下游任务有可能因为缓存下溢而出现数据饥饿现象,此现象称为数据流中断。在这种情况下,数控系统会中止连续的高速加工,从而延长了加工时间,增大了加工误差。
目前,关于数据流软件结构的研究主要集中在缓存容量与任务集可调度性的静态分析上。静态的分析方法对系统状态要求较为苛刻,不能自适应系统状态的变化。数控系统是一个典型的动态不可测系统,任务的数据消费速度、执行时间,偶发任务的执行时机都是不确定因素。当静态分析所要求的约束条件被违反时,系统的行为与状态便不可预测了。特别是系统过载或是某些任务的数据消费速度的突然增加,可能导致数据流中断。而且,静态分析方法在分配系统资源时过于悲观,增加了系统成本。动态反馈调度方法能够根据系统状态在线地调整任务的调度参数,提高了动态不可测系统的稳定性。但是现有的反馈调度算法均没有考虑到任务间的制约关系。将其运用在数控系统中时,可能会加剧数据流中断现象。
发明内容
针对现有实时调度方法存在的难以适应数控系统的动态特性、导致数控系统中数据流中断现象等不足之处,本发明要解决的技术问题是提供一种可以预防全软件数控系统中数据流中断现象的发生,从而避免了关键任务产生数据饥饿现象的面向数控系统的数据流反馈调度方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明面向数控系统的数据流反馈调度方法包括以下步骤:
监测全软件数控系统的数据流中各个缓存的状态;
建立实时反馈调度框架,利用该框架判断某个缓存是否已经下溢,当没有发生下溢时,则评估各个缓存发生下溢的危险性;
当缓存存在下溢危险性过大时,即数据流中断的危险较大时,则调整相关实时任务的调度周期,并降低由调整调度周期带来的系统开销。
当缓存的下溢危险性不大时,结束本次反馈调度。
当某个缓存已经发生下溢时,调整相关实时任务的优先级,以降低数据流中断的时间。
所述调整相关实时任务的优先级采用以下方法:
在某个缓存下溢时,将生产者任务的优先级提升至消费者任务的优先级;
某个缓存不再下溢时,即缓存不空时,恢复该任务的优先级。
评估各个缓存发生下溢的危险性包括:
在实时操作系统中,建立缓存模型,并根据缓存中数据量的变化速率及其它调度相关的参数,为缓存设置溢出警戒线;
当缓存中的数据量超出该警戒线时,便认为该缓存具有溢出的危险性。
所述降低由调整调度周期带来的系统开销采用以下方法:
利用K阶马尔可夫模型与统计方法,预测缓存中数据量的变化方向和下次应该调整的时间;
以数据量的变化方向和下次应该调整的时间为依据,建立调度周期调整的规则。
所述实时反馈调度框架为:包括监视器和控制器,通过监视器动态监测数据流上各个缓存的状态,将监测结果反馈给控制器,由控制器对数控系统中各个实时任务的调度周期及优先级进行调整。
本发明具有以下有益效果及优点:
1.本发明提供了一种针对数据流结构的反馈调度方法,克服了全软件数控系统中会出现数据流中断的不足,可以预防全软件数控系统中数据流中断现象的发生,从而避免了关键任务产生数据饥饿现象,提高了全软件数控系统的加工速度和加工质量。
附图说明
图1为全软件数控系统中数据流模型的示意图;
图2为本发明方法中应用的缓存模型示意图;
图3为本发明方法中数据生产的时间间隔示意图;
图4为本发明方法中实时任务优先级调整示意图;
图5为本发明方法所使用的调度框架示意图;
图6为本发明实施例中对跃变时间间隔说明图;
图7为本发明实施例中缓存A中的数据量变化示意图;
图8为本发明方法流程图。
具体实施方式
如图8所示,本发明面向数控系统的数据流反馈调度方法包括以下步骤:
监测全软件数控系统的数据流中各个缓存的状态;
建立实时反馈调度框架,利用该框架判断某个缓存是否已经下溢,当没有发生下溢时,则评估各个缓存发生下溢的危险性;
当缓存存在下溢危险性过大时,即数据流中断的危险较大时,则调整相关实时任务的调度周期,并降低由调整调度周期带来的系统开销;
当缓存的下溢危险性不大时,结束本次反馈调度;
当某个缓存已经发生下溢时,调整相关实时任务的优先级,以降低数据流中断的时间。
本发明方法的基本内容为:建立缓存模型、调整各任务的执行频率、调整各任务的优先级、建立动态反馈调度框架,以预防数控系统中的数据流发生中断。
评估各个缓存发生下溢的危险性包括:
在实时操作系统中,建立缓存模型,并根据缓存中数据量的变化速率及其它调度相关的参数,为缓存设置溢出警戒线;
当缓存中的数据量超出该警戒线时,便认为该缓存具有溢出的危险性。
其中建立缓存模型(如图2所示)为:
对数据流上的周期任务用五元组表示为: 其中
Figure BDA0000037073790000032
为任务的名义优先级,是在系统的设计阶段分配给任务的优先级。在数据流上,各个任务的重要性自上而下依次增加。位置控制任务位于数据流的尾端,名义优先级最高。pi为任务的当前优先级。
Figure BDA0000037073790000033
为任务的名义周期,是在系统设计阶段为任务分配的周期。Ti为任务的当前周期,
Figure BDA0000037073790000034
为任务的WCET(Worst Case Execution Time),即任务在最坏情况下无中断执行所花的时间。
用七元组定义缓存模型为:
Figure BDA0000037073790000035
其中,C为缓存的容量,Wcur为缓存当前的数据量。Wh为上溢警戒线,Wl为下溢警戒线。消费者任务在单位时间内消费的数据量称为缓存的数据消费率Rc,生产者任务在单位时间内生产的数据量称为缓存的数据生产率Rp
Figure BDA0000037073790000036
为该缓存的最大数据消费率,
Figure BDA0000037073790000037
为最小数据消费率。粗插补任务有可能很多个周期都不需消费数据,可以认为缓存A的
Figure BDA0000037073790000038
等于0。而在最坏的情况下,该任务每个周期都要消耗一条数据,所以缓存A的
Figure BDA0000037073790000039
为l/Trp,Trp为粗插补任务的周期。加减速控制任务与位置控制任务每个周期都只消耗一条数据。因此对缓存B与C而言,
Figure BDA00000370737900000310
Tc为消费者任务的周期。各个缓存的Rp可以根据生产者任务的周期来确定,即Rp1/Tp。其中Tp为生产者任务的周期。
定义缓存的数据量变化率ΔR=Rp-Rc。当DR>0时,缓存中的数据量正在增加。DR<0时,缓存中的数据量正在减少。设bi与bi+1分别为时刻ti与ti+1时,缓存中的数据量。那么在时间段[ti,ti+1]中,缓存中数据的变化量为:
Db=bi+1-bi=(Rp-Rc)?(ri+1 ti)=DR碊T (1)
设置溢出警戒线的目的是提前判断缓存是否将发生溢出,从而为调整操作留取时间。因此,可以通过数据变化速度最大值和调整操作需要的时间DT来确定溢出警戒线的值。DT应该包括调度框架的监测周期和生产者任务响应调整的时间。监测周期Ts是指检查缓存数据量的时间间隔。如果缓存中的数据量在一次检查之后,立刻超出了Wl或Wh,那么直到下次监测才能发现这个情况。这时可能已经发生了溢出。因此DT必须包括一个监测周期。生产者任务的周期被调整后,需要等到下个周期才能执行。如图3所示,假设数据流上的所有任务都能在其时限之前执行完毕,生产者任务两次输出之间的最大时间间隔应该为: 因此DT应该等于
Figure BDA0000037073790000042
在DR<0时,数据量的最大变化率为
Figure BDA0000037073790000043
在DR>0时,数据量的最大变化率为
Figure BDA0000037073790000044
定理一给出了为缓存分配警戒线的方法。
定理一:为了预防缓存溢出,缓存的高低警戒线应满足如下条件:
调整相关实时任务的调度周期,并降低由调整调度周期带来的系统开销的方法为:
缓存的作用就是为了消除速率差异,只要缓存的数据量在区间[Wl,Wh]内,便无需调整生产者任务的执行速率。在DR>0时,即使缓存中的数据量低于Wl,也无需调整,因为缓存中的数据量已经在增加了,不存在下溢的危险。同样,在数据量高于Wh并且DR<0时,也不存在上溢的危险,因为数据量已经在减少了。因此,调整生产者任务执行速率的时机可以概括为以下规则。
规则一:
(1)如果缓存中的数据量低于Wl,并且DR<0,需要增加生产者任务的执行速率。
(2)如果缓存中的数据量高于Wh,并且DR>0,需要降低生产者任务的执行速率。
调整的首要目标是预防缓存溢出。在缓存将要溢出时,数据生产率至少应该变化DR,才能适应消费者任务的需求。但是,实时系统对调度开销的敏感性要求在预防缓存溢出之外,还应减少未来的调整次数。DR的变化具有阶段性和重复性,在保持一个较为稳定的阶段之后,才会出现大的跃变。而且,变化模式可能会重复出现多次。对生产速率的调整通常发生在DR出现跃变时。利用DR的统计特性,可以尽量保证在DR没有发生跃变的时候,不用对生产者的执行频率进行调整。
当DR在一个监测周期内的变化超过了正整数d时,便认为DR发生了跃变。并令Dtc为两次跃变之间的时间间隔。使用K个连续的Dtc的数学期望便可以估计出DR下次跃变的时间。那么调整的目标至少应是:在
Figure BDA0000037073790000048
之前,将缓存的数据量保持在安全范围内。
根据DR未来的跃变方向来确定执行频率的调整量,能够进一步降低调整次数。考虑以下情况:在某次缓存的数据量低于Wi并且DR<0时,提高了生产者的执行频率,但是提高的幅度小于2d。如果DR在下次跃变时减小,必然会出现DR<0的情况。此后,缓存中的数据量将会降低。那么,如果能够使缓存中的数据量在下次跃变时达到Wh,就可以推迟再次调整的时间。若是生产速率的增加幅度大于2d,即使ΔR再次跃变时仍然减小,也不会有DR<0的情况。在这种情况下,便不能使数据量在
Figure BDA0000037073790000051
后达到Wh,否则在跃变后,需要立即进行调整。如果ΔR在下次跃变时增大,可以使数据量在
Figure BDA0000037073790000052
结束时仅到达Wl
K阶马尔可夫模型可以根据已经发生的K个状态预测当前状态。利用已经发生的跃变方向作为马尔可夫模型的训练集,能够得到在K次跃变已经发生的情况下,两种跃变方向的条件概率。
使用跃变状态表记录已经发生的跃变方向。
定义一:ΔR的跃变序列μ记录了ΔR从系统启动到当前时刻,每次跃变时的变化方向。μ是一个二值序列,序列中元素的定义为:
μK是跃变序列μ尾部的K个元素组成的子序列。跃变状态表ST={s,s0,s1}用来统计所有长度为K的序列发生的次数。表中的每个元素对应一个长度为K的序列,字段s记录了该序列的出现的次数;s1记录了在该序列之后跃变方向为1的次数;s2记录了该序列之后跃变方向为0的次数。由于表中的元素个数为2K,K的取值不能过大。调度程序在ΔR跃变时,根据当前的跃变方向更新跃变状态表。在跃变序列μK之后,跃变方向为θ的条件概率为:
P(θ|μK)可以作为K阶马尔可夫模型的转移概率。μK.s{θ}与μK.s的值可以从状态表中查到。
如果概率P(θ|μK)较低,那么预测错误的可能性比较大。错误的预测会造成对生产速率的调节力度过大或者过低,从而导致调整次数增加。为了降低预测错误的可能性,为跃变方向的条件概率P(θ|μK)设置一个可信度Pref。只在P(θ|μK)>Pref时,才认为预测是可信的。当P(1|μK)和P(0|μK)都小于Pref时,可以将调整目标设定成为在
Figure BDA0000037073790000055
结束后,缓存中的数据量应达到缓存容量的一半。根据以上叙述,可以得到数据生产率的调整策略。调整后的数据生产率应该满足如下关系:
其中Wobj为缓存的数据量
Figure BDA0000037073790000057
之后的预期值,Wcur为当前的数据量。对Wobj的选取需要遵循如下规则。
规则二:
(1)规则一中的情况1成立,并且P(0|μK)>Pref。如果
Figure BDA0000037073790000061
那么Wobj=Wh。否则Wobj=Wn
(2)规则一中的情况1成立,并且P(1|μK)>Pref,那么Wobj=Wl
(3)规则一中的情况2成立,并且P(0|μK)>Pref,那么Wobj=Wh
(4)规则一中的情况2成立,并且P(1|μK)>Pref,如果
Figure BDA0000037073790000062
那么Wobj=Wl。否则Wobj=Wn
(5)规则一成立,并且P(0|μK)<Pref,P(1|μK)<Pref,那么Wobj=Wn
在缓存存在溢出的危险时,根据定理二计算缓存生产者的新周期。
定理二:调整后的生产者任务的周期应该满足关系:
当某个缓存已经发生下溢时,调整相关实时任务的优先级,以降低数据流中断的时间,其中调整各个任务的优先级的方法为:
在数控系统的数据流结构中,缓存消费者任务的优先级均比生产者任务高。当缓存下溢时,生产者任务可能会因为优先级较低而得不到立即执行。特别是当系统中存在优先级高于生产者而低于消费者的任务时,生产者任务有可能因被抢占而长期处于等待状态。如图4所示,其中(a)为未调整任务优先级时的调度序列。任务τ1的优先级高于生产者任务Tdfp,低于消费者任务Tdfc。由于被τ1抢占,Tdfp直到接近时限时才输出数据,而消费者任务已空运转了多个周期。若是能减少生产者任务的等待时间,便可以减少消费者任务数据饥饿的时间。优先级逆转是指高优先级的任务因共享资源被低优先级的任务持有而被迫等待的现象。可以将消费者任务的数据饥饿也看成优先级逆转。实时操作系统通常使用资源访问控制协议来抑制优先级逆转。优先级继承协议是一种简单的资源访问控制协议,它虽不能消除优先级逆转现象,但是可以减少高优先级任务等待的时间。参考优先级继承协议,本文在数据流模型上使用规则三对生产者任务的优先级进行调整,以减少缓存下溢的时间。
规则三:
在某个缓存下溢时,便将生产者任务的优先级提升至消费者任务的优先级。缓存不空时,再恢复该任务的优先级。
当缓存下溢时,规则三减少了其它任务对生产者任务的干扰,使它能够尽快地得以执行。规则三具有传递性,当图1中的缓存A与缓存B同时下溢时,可以将解释器任务的优先级提升至加减速控制任务的优先级。如图4所示,(b)为采用优先级调整方法时的调度序列。在消费者任务Tdfc某次执行时发生了缓存下溢,因此将生产者任务Tdfp的优先级提升至Tdfc的优先级。此后,τ1无法抢占Tdfp,使得Tdfp能够尽快地生产出数据,减少了Tdfc的数据饥饿时间。考虑到位置控制任务的高实时性,不应该有任何任务的优先级与其相等,否则便会干扰到位置控制任务的时间行为。很多实时操作系统采用时间片轮转策略调度同等优先级的任务,与位置控制任务优先级相同的任务会延长位置控制任务的执行时间,增加控制延迟,降低加工质量。因此规则三不适用数控软件模型中的缓存C。
所述实时反馈调度框架为:包括监视器和控制器,通过监视器动态监测数据流上各个缓存的状态,将监测结果反馈给控制器,由控制器对数控系统中各个实时任务的调度周期及优先级进行调整。
如图5所示,调度框架由监视器,控制器以及基本调度器组成。监视器负责监测所有缓存的数据量和数据量的变化率。以此为依据计算出DR每次发生跃变的时间间隔,更新系统中保存的K个最新的Dtc的值。并根据跃变方向更新跃变状态表。控制器比较各缓存的数据量是否超出了警戒线,然后利用规则二和定理二计算出各周期任务的新周期,并将其分配给各个任务。如果出现缓存下溢,便利用规则三调整该缓存生产者任务的优先级。
反馈调度算法仅在基本的实时调度算法之上增加了监测与调整的框架,并不能取代实时调度算法本身。因此,反馈调度算法中都会存在一个基本调度器,以执行实时调度算法。基本实时调度算法根据相应的策略在就绪任务中选择一个最佳者执行。最常用的实时调度算法可以分为静态优先级算法与动态优先级算法。虽然静态优先级调度算法的处理器利用率不及动态优先级调度算法,但是前者的可预测性要优于动态优先级算法。特别是,在使用静态优先级算法时,任务间的执行顺序是可知的。在本文描述的数控系统中,采用了固定优先级的调度方法。各个任务的优先级在系统设计时便已确定。
对一个实时调度算法而言,如果所有实时任务的时限约束都能得到满足,便称该任务集为可调度的。任务集的系统负载小于实时调度算法的可调度利用率是该任务集可调度的充分条件。当任务集的系统负载超出了可调度利用率时,便认为系统处在过载状态,过载的系统无法保证实时任务的时限约束,也不能稳定地提供正常功能。因此在反馈调度框架FSS-DF中,必须保证任务集的系统负载低于基本实时调度算法的可调度利用率。
公式(9)给出了静态优先级实时调度算法的可调度利用率。任务集的处理器利用率在满足公式(10)时,便具有可调度性。
U=n(21/n-1) (9)
公式中的n为任务集中的任务数。如图1所示,数控系统中的周期性硬实时任务共有4个,可调度利用率U应为75.7%。在根据公式(8)为某个任务分配了新周期之后,需要判断在这样一个周期下,任务集是否还具有可调度性。如果任务集的处理器利用率超出了U,需要重新计算被调整任务的周期。假设在调整之前,任务集的处理器利用率为Uold,那么可以分配给被调整任务的处理器利用最多为U-Uold,因此被调整任务的周期的最小值可以通过公式(11)得出。如果
Figure BDA0000037073790000081
便令
数控系统是一个混合任务系统[12]。除了数据流上的硬实时任务外,数控系统中还存在很多低优先级的任务,比如实时刀轨显示任务,系统日志任务等。这些任务通常被实现为非实时任务。很多实时操作系统都提供了多级调度框架,采用前后台的方式调度混合任务集。非实时任务在硬实时任务的后台执行,没有硬实时任务就绪时才会执行它们。因此当硬实时任务的负载增加时,会剥夺非实时任务的执行时间。从而影响到它们的服务质量,比如实时刀轨显示任务的图形质量。
控制器是整个调度框架的核心,综合以上对数据流上各任务的周期及优先级的调整规则,可以得到控制器的算法框架。
算法一:
B[N]为保存缓存数据结构的数组,N为数据流上缓存的个数;
Tctrl为控制器的执行周期;
Dataflow_Controller()
{
for(i=0;i<N;i++)
{
根据缓存B[i]中数据的变化量与Tctrl计算ΔR;
if(ΔR>δd)
{//ΔR发生了跃变
更新
Figure BDA0000037073790000084
更新跃变状态表;
}
if((B[i].Wcur>B[i].Wh&&ΔR>0)||(B[i].Wcur<B[i].W1&&ΔR<0))
{//缓存B[i]将要发生上溢或下溢
根据规则二计算Wobj
根据公式(8)计算缓存B[i]的生产者分配新周期
Figure BDA0000037073790000085
根据公式(11)计算
Figure BDA0000037073790000086
Figure BDA0000037073790000087
Figure BDA0000037073790000089
//生产者任务的新周期大于它的名义周期
根据公式(2)与公式(3)更新缓存B[i]的数据生产率与溢出警戒线;
if(i!=0)
更新缓存B[i-1]的数据消费率与溢出警戒线;
}
if(B[i].Wcur==0&&B[i]的消费者不是位置控制任务)
{//缓存B[i]发生了下溢
令B[i]生产者的优先级等于B[i]消费者的优先级;
}
if(B[i].Wcur!=0&&
Figure BDA0000037073790000091
)//缓存B[i]不空,并且生产者任务的优先级不等于它的名义优先级
{
//将生产者任务的优先级恢复为它的名义优先级
}
}
}
该算法的时间复杂度为O(N),仅给实时调度带来了有限的开销。
下面对本发明的实施例作出说明,本实施例是在以本发明技术方案为前提下进行实施,并给出了详细的实施方式和过程,但本发明的适用范围不限于下述的实施例。
实验中数控软件的结构基本如图1所示。数据流上共包含4个周期任务与3个共享缓存。表一给出了流水线上各周期任务的参数设置。这些任务均为硬实时任务,其中粗插补任务,加减速任务,位置控制任务运行在内核空间。解释器任务利用RTAI提供的LXRT(Linux Real-time)机制,运行在用户空间。硬实时任务集的处理器利用率为:46.04%。由于静态优先级实时调度算法的可调度利用率为75.7%,存在很多富余处理器带宽。表二给出了各共享缓存的属性。
调度框架中存在3个参数,δ,K与Pref。δ的取值应使
Figure BDA0000037073790000093
的变化较为平稳,因为
Figure BDA0000037073790000094
的剧烈变化会影响到马尔可夫预测的效果。图6反映了δ的取对 的变化过程的影响。从图上可以看到,当δ=30时,
Figure BDA0000037073790000096
的变化较为平稳。参数K对应于用于统计的样本的数量。K的值越大,对
Figure BDA0000037073790000097
与跃变方向的预测就越准确,但同时也带来了较大的系统开销。Pref反映了高阶马尔科夫预测的可信度。Pref的值越大,对跃变方向预测错误的可能性就越低。但是如果Pref的值过大,则丧失了马尔科夫预测的意义。本文在实验中,评价了K与Pref对算法性能的影响。
表一:各周期任务的属性表(总负载46.04%)
Figure BDA0000037073790000098
表二:各缓存的属性(单位:数据个数)
Figure BDA0000037073790000102
未开启反馈调度时,过多的小线段使得粗插补任务的数据饥饿次数累计达到了15310次,粗插补任务的等待又导致了下游任务的数据饥饿。在开启反馈调度以后,缓存的上溢和下溢得到了有效的控制。表格三到五给出了测试结果。
表三:未开启反馈调度
表四:在不同的K值下,各缓存的溢出情况
Figure BDA0000037073790000104
表五:在不同的Pref值下,各缓存的溢出情况(K=5)
Figure BDA0000037073790000105
从表四中可以看到,K的值越大算法的效果就越好。因为样本数量的增加使得统计结果更加可信。但是,K的增加会加大系统负载,从而加剧了实时任务的调度抖动。当Pref过大的时候,规则二中的情况1到情况4成立的次数很少,从而出现很多对数据生产速率调整力度不够的情况,增加了调节次数。从实验结果中看到,Pref=0.9时效果最好。图7为K=5,Pref=0.9时,缓存A中数据量的变化情况。从图7可以看出,当缓存有溢出的危险时,反馈调度框架能够及时地调节生产者任务的执行频率,有效地预防了溢出的发生。当在未开启反馈调度时,整个加工过程历时1小时25分钟。在开启反馈调度之后,整个加工过程在53分钟左右便完成了。由于对数据流中断的预防,节省了加工时间。在实验过程中,由于系统负载的上升,而使得实时刀轨显示任务的图形质量出现波动。但是,这种现象只在小线段过于密集的时候才会出现,不会维持很长时间。

Claims (1)

1.一种面向数控系统的数据流反馈调度方法,其特征在于包括以下步骤:
监测全软件数控系统的数据流中各个缓存的状态;
建立实时反馈调度框架,利用该框架判断某个缓存是否已经下溢,当没有发生下溢时,则评估各个缓存发生下溢的危险性;
当缓存存在下溢危险性过大时,即数据流中断的危险较大时,则调整相关实时任务的调度周期,并降低由调整调度周期带来的系统开销;
当缓存的下溢危险性不大时,结束本次反馈调度;
当某个缓存已经发生下溢时,调整相关实时任务的优先级,以降低数据流中断的时间;
所述调整相关实时任务的优先级采用以下方法:
在某个缓存下溢时,将生产者任务的优先级提升至消费者任务的优先级;
某个缓存不再下溢时,即缓存不空时,恢复该任务的优先级;
评估各个缓存发生下溢的危险性包括:
在实时操作系统中,建立缓存模型,并根据缓存中数据量的变化速率及其它调度相关的参数,为缓存设置溢出警戒线;
当缓存中的数据量超出该警戒线时,便认为该缓存具有溢出的危险性;
所述降低由调整调度周期带来的系统开销采用以下方法:
利用K阶马尔可夫模型与统计方法,预测缓存中数据量的变化方向和下次应该调整的时间;
以数据量的变化方向和下次应该调整的时间为依据,建立调度周期调整的规则;
所述实时反馈调度框架为:包括监视器和控制器,通过监视器动态监测数据流上各个缓存的状态,将监测结果反馈给控制器,由控制器对数控系统中各个实时任务的调度周期及优先级进行调整。
CN2010105807339A 2010-12-09 2010-12-09 一种面向数控系统的数据流反馈调度方法 Active CN102540968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105807339A CN102540968B (zh) 2010-12-09 2010-12-09 一种面向数控系统的数据流反馈调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105807339A CN102540968B (zh) 2010-12-09 2010-12-09 一种面向数控系统的数据流反馈调度方法

Publications (2)

Publication Number Publication Date
CN102540968A CN102540968A (zh) 2012-07-04
CN102540968B true CN102540968B (zh) 2013-12-04

Family

ID=46348061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105807339A Active CN102540968B (zh) 2010-12-09 2010-12-09 一种面向数控系统的数据流反馈调度方法

Country Status (1)

Country Link
CN (1) CN102540968B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072494B (zh) * 2015-07-31 2018-12-21 无锡天脉聚源传媒科技有限公司 一种视频相关信息迁移的处理方法及装置
CN114065995B (zh) * 2020-08-10 2024-04-19 兰州理工大学 一种基于协同演化算法的流水车间节能调度求解方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489842A (zh) * 2001-01-31 2004-04-14 �ź㴫 使用会话序列的多路访问通信的动态带宽分配
JP2006005682A (ja) * 2004-06-17 2006-01-05 Toshiba Corp 動画像のメタデータのデータ構造及びその再生方法
CN1938685A (zh) * 2004-02-06 2007-03-28 英特尔公司 用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法
CN101233706A (zh) * 2005-07-29 2008-07-30 Nxp股份有限公司 数据流同步

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489842A (zh) * 2001-01-31 2004-04-14 �ź㴫 使用会话序列的多路访问通信的动态带宽分配
CN1938685A (zh) * 2004-02-06 2007-03-28 英特尔公司 用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法
JP2006005682A (ja) * 2004-06-17 2006-01-05 Toshiba Corp 動画像のメタデータのデータ構造及びその再生方法
CN101233706A (zh) * 2005-07-29 2008-07-30 Nxp股份有限公司 数据流同步

Also Published As

Publication number Publication date
CN102540968A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102708011B (zh) 一种云计算平台自适应任务调度方法
US10884811B2 (en) Scheduler for AMP architecture with closed loop performance controller using static and dynamic thread grouping
Wan et al. Fuzzy feedback scheduling algorithm based on central processing unit utilization for a software-based computer numerical control system
CN109324880A (zh) 一种适用于实时系统周期任务模型的低功耗调度方法
CN103218263A (zh) MapReduce参数的动态确定方法及装置
EP3278220B1 (en) Power aware scheduling and power manager
US20230127112A1 (en) Sub-idle thread priority class
WO2020248227A1 (zh) 一种基于负载预测的Hadoop计算任务推测执行方法
KR101770736B1 (ko) 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
CN102540968B (zh) 一种面向数控系统的数据流反馈调度方法
CN103442087B (zh) 一种基于响应时间趋势分析的Web服务系统访问量控制装置和方法
CN103345296B (zh) 动态电压频率调整触发装置和方法
Yao et al. Ts-bat: Leveraging temporal-spatial batching for data center energy optimization
US11599184B2 (en) Throughput-optimized, quality-of-service aware power capping system
CN109918181A (zh) 基于最差响应时间的混合关键系统任务可调度性分析方法
Wan et al. Key technology of embedded system implementation for software-based CNC system
CN105933702A (zh) 一种基于任务敏感的功耗控制方法
CN115378789A (zh) 一种多层次协作的流资源管理方法及系统
CN101937371A (zh) 一种嵌入式系统中监控任务执行状态的方法及装置
Poltavtseva et al. Planning of aggregation and normalization of data from the Internet of Things for processing on a multiprocessor cluster
Chen et al. A dynamic adjustment mechanism with heuristic for thread pool in middleware
Chen et al. Conlar: Learning to allocate resources to docker containers under time-varying workloads
CN105069250A (zh) 一种基于调度粒度的任务优先级计算方法
CN111506397A (zh) 一种基于linux实时操作系统的单调速率优先级调度方法
CN104978006A (zh) 一种多线程模式下的低功耗空闲等待方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY CO., LTD.

Effective date: 20150819

Owner name: SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHN

Free format text: FORMER OWNER: SHENYANG INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20150819

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150819

Address after: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee after: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

Address before: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee before: Shenyang Institute of computing technology, Chinese Academy of Sciences

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee after: SHENYANG GAOJING NUMERICAL CONTROL INTELLIGENT TECHNOLOGY CO., LTD.

Address before: 110171 Liaoning Province, Shenyang Hunnan New District Nanping Road No. 16

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

CP01 Change in the name or title of a patent holder

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee after: Shenyang Zhongke CNC Technology Co.,Ltd.

Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Patentee before: SHENYANG GOLDING NC & INTELLIGENCE TECH. Co.,Ltd.

CP01 Change in the name or title of a patent holder