一种实时数据库的截止期分配方法与流程

文档序号:12597981阅读:266来源:国知局
一种实时数据库的截止期分配方法与流程

本发明属于实时数据库任务调度技术领域,更具体地,涉及一种实时数据库的截止期分配方法。



背景技术:

实时数据库系统已被广泛应用于需要处理大量的实时数据的应用环境中,一个实时数据库是由一组实时数据对象集合组成,每个数据对象代表着外部环境中一个现实世界的实体当前的状态,实时数据对象仅在给定的有效时间间隔(V)内有效,每个实时数据对象必须在其有效期内被传感器中的更新任务刷新,以保持时间的有效性。

针对时序一致性要求,实时数据库系统必须在保证数据一致性的前提下,分配传感器更新任务的采样周期(T)和截止期(D),使得处理器的工作量(U)最小。

现有技术中的截止期分配技术是固定优先级调度的截止期分配,譬如均等分配(简称HH),不均等分配(MLDM)和固定优先级任务延迟的调度算法(DS-FP),以及在EDF调度下的不均等分配(MLEDF);MLEDF是线性时间EDF(Earliest Deadline First)算法,可以解决截止期大于周期的情况下的截止期分配问题。MLEDF在时间上是有效的,但可能不会产生最优的解决方案。另一种基于分支定界的搜索算法,能够处理任意截止期的情况;然而该算法的问题在于不能有效的评估问题的规模;为解决该问题提出的基于启发式的搜索算法,则是以增加处理器的工作量为代价来实现效率的提高。因此,对实时数据库环境下在动态优先级调度策略下维持时序一致性的低负载截止期分配方法具有需求。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种实时数据库的截止期分配方法,其目的在于在保证可调度性的同时降低处理器负载。

为实现上述目的,按照本发明的一个方面,提供了一种实时数据库的截止期分配方法,包括如下步骤:

(1)对给定的任务集合,将任务集合中各任务的执行时间相叠加,得到单位执行长度Csum

(2)将任务集合中的任务按照有效时间间隔长度递增的顺序进行排序;并依照该顺序依次为每个任务分配截止期、周期;

第i个任务的截止期Di的大小为第一个任务到第i个任务的执行时间之和;

第i个任务的周期Ti=Vi-Di;Vi是指有效时间间隔;

(3)判断是否每个任务均满足Di≤Vi/2、Dmax≤Vi且处理器利用率不大于1;其中,任务截止期的最大值Dmax与单位执行长度Csum相等;

若是,则判定分配的周期和截止期有效;若否,则进入步骤(4);

(4)采用不均等截止期递增分派(More-less deadline monotonic,MLDM)算法按照上述排序依次对每个任务

当第i个任务的周期、截止期预分配完成,判断第i个任务的预分配结果是否满足EDF调度的条件,若是,则计算第(i+1)个任务的截止期,直到最后一个任务,并进入步骤(5);若否,则进入步骤(6);

(5)根据预分配结果计算获取各任务的截止期的上界和下界,并根据所述上界和下界确定各任务的截止期;

(6)对前(k-1)个任务,根据预分配结果计算获取各任务的截止期的取值区间,并根据该截止期取值区间确定每个任务的截止期;

对于第k个及其之后的任务,计算获取各任务的截止期的下界与上界;并根据所述下界与上界计算获取各任务的截止期;其中,k=i;第k个任务是任务集合中第一个不满足EDF调度条件的任务。

优选的,上述实时数据库的截止期分配方法,其步骤(4)具体为:

(4.1)采用MLDM算法按照排序依次对每个任务进行周期、截止期预分配;

截止期

周期Ti=Vi-Di

其中,j是指集合中任务按照有效时间间隔长度递增的顺序进行排序后的第j个任务,Tj是指第j个任务的周期,Cj是指第j个任务的最大执行时间;

(4.2)当第i个任务的周期和截止期预分配完成,判断是否满足第i个任务的周期

若是,则计算获取第(i+1)个任务的截止期,直到最后一个任务,并进入步骤(5);

若否,则进入步骤(6)。

优选地,上述实时数据库的截止期分配方法,其步骤(5)具体包括如下子步骤:

(5.1)获取任务i的截止期的上界Diup,Diup为第一个任务到第i个任务的执行时间之和;

(5.2)获取任务i的截止期的下界Dilo,Dilo为任务i的上一个任务截止期与该任务执行时间之和;

(5.3)判断截止期范围[Dilo,Diup]内的所有任务的绝对截止期是否都满足h(t)不大于t;若是,则将下界Dilo作为该任务的截止期,令i=i+1,并进入步骤(5.1);若否,则进入步骤(5.4);

其中,h(t)是指在时刻t处的任务集合的最大处理器占用时间(DBF);

(5.4)将第一个不满足h(t)不大于t条件的时刻的DBF作为任务的新截止期下界Dilo,获得新的截止期范围,并重复步骤(5.3),直到满足h(t)不大于t或者上、下界取值相同。

优选地,上述实时数据库的截止期分配方法,其步骤(6)具体包括如下子步骤:

(6.1)采用MLDM算法按照步骤(2)的排序从前向后依次对每个任务进行周期、截止期分配,直到不能分配的时刻;

对(k-1)个已经成功分配的任务构成的任务集合,重复步骤(5.1)~(5.4),获取各任务的截止期;

(6.2)对未能成功进行周期、截止期分配的任务,从第k个任务开始,计算各任务的截止期的下界与上界;由所述上界与下界构成截止期范围,并重复步骤(5.3)~(5.4);

其中,任务的截止期的上界为有效时间间隔与执行时间之差;截止期的下界为本任务执行时间与其上一个任务截止期之和。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供的实时数据库的截止期分配方法,由于提出了能够快速判断任务集合是否EDF可调度的充分条件,因此该方法可以快速的计算出每个任务的周期截止期,使得任务集合EDF可调度;

(2)本发明提供的实时数据库的截止期分配方法在快速条件失效的情况下,能够通过缩小每个任务的截止期取值范围的方法来降低计算截止期的开销,在计算时间和计算负载上要由于已有的算法。

(3)本发明提供的实时数据库的截止期分配方法,首先利用快速计算的方法计算出大多数情况下每个任务的截止期,保证了高效性;当快速计算失败时,采用确定取值区间的方法降低开销来保证算法的完备性。

附图说明

图1是实施例提供的实时数据库的截止期分配方法的流程示意图;

图2是实施例中步骤(5)的流程示意图;

图3是实施例中步骤(6)的流程示意图;

图4是实施例中任务数量与CPU负载之间的关系曲线;

图5是实施例中任务数量与分配方法的迭代次数之间的关系示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

实施例提供的实时数据库的截止期分配方法,其流程如图1所示,具体包括以下步骤:

(1)对给定的任务集合,将各任务的执行时间相叠加,得到单位执行长度Csum

(2)将任务集合中的任务按照有效时间间隔长度递增的顺序进行排序;并依照该顺序依次为每个任务分配截止期、周期;

第i个任务的截止期Di的大小为第一个任务到第i个任务的执行时间之和;

第i个任务的周期Ti=Vi-Di;Vi是有效时间间隔;

(3)判断是否每个任务均满足Di≤Vi/2Dmax≤Vi且处理器利用率不大于1;其中,任务截止期的最大值Dmax与单位执行长度Csum相等;

若是,则判定分配的周期和截止期有效;若否,则进入步骤(4);

(4)采用MLDM算法按照上述排序从前向后依次对每个任务进行周期、截止期预分配;

具体地,截止期

周期为有效时间长度与截止期的差;

在分配的过程中,当第i个任务分配完,判断第i个任务的截止期若是,则令i=(i+1),计算第(i+1)个任务的截止期,直到最后一个任务,并进入步骤(5);

若否,则将i的值赋予k,并进入步骤(6);

(5)根据预分配结果计算获取各任务的截止期的上界和下界,并根据所述上界和下界确定各任务的截止期;

(6)对前(k-1)个任务,根据预分配结果计算获取各任务的截止期的取值区间,并根据该截止期取值区间确定每个任务的截止期;

从第k个任务开始,计算获取各任务的截止期的下界与上界;并根据所述下界与上界计算获取各任务的截止期;

其中,第k个任务是任务集合中第一个使得(4)中的判断条件不成立的任务;

其中,步骤(5)的流程如图2所示意的,包括以下步骤:

(5.1)获取任务i的截止期的上界Diup,Diup为第一个任务到第i个任务的执行时间之和;

(5.2)获取任务i的截止期的下界Dilo,Dilo为任务i的上一个任务截止期与该任务执行时间之和;

(5.3)判断截止期范围[Dilo,Diup]内的所有任务的绝对截止期是否都满足h(t)不大于t;若是,则将下界Dilo作为该任务的截止期,令i=i+1,并进入步骤(5.1);若否,则进入步骤(5.4);

其中,h(t)是指在时刻t处的任务集合的最大处理器占用时间(DBF);

(5.4)将第一个不满足h(t)不大于t条件的时刻的DBF作为任务的新截止期下界Dilo,获得新的截止期范围,并重复步骤(5.3),直到满足h(t)不大于t或者上、下界取值相同;

如果上、下界相等,则表明找不到合适的截止期使得任务集合EDF可调度,判定分配失败。

实施例中步骤(6)的流程如图3所示意的,包括以下步骤:

(6.1)采用MLDM算法按照步骤(2)的排序从前向后依次对每个任务进行周期、截止期分配,直到不能分配的时刻;

对(k-1)个已经成功分配的任务构成的任务集合,重复步骤(5.1)~(5.4),获取各任务的截止期;

(6.2)从第k个任务开始,计算各任务的截止期的下界与上界;由所述上界与下界构成截止期范围;

其中,任务的截止期的上界为有效时间间隔与执行时间之差;截止期的下界为上一个任务截止期与该任务执行时间之和;

(6.3)重复步骤(5.3)~(5.4)。

实施例中,在以下环境下对实施例提供的实时数据库的截止期分配方法进行测试验证:处理器CPU为2.7GHz Intel Core i5;内存为8G;操作系统为OS X EI Capitan 10.11.5;

以下将实施例的这种分配方法与几种传统的算法相比较,比较所采用的数据是真实的交通控制平台的数据,数据的参数如下:

实时数据对象的个数:[50,300];

实时数据对象的有效期长度均匀分布在区间[4000,8000],单位为毫秒;

更新任务的执行时间均匀分布在区间[5,15],单位为毫秒;

从CPU负载和执行时间两方面来进行测试;测试结果如图4和图5所示意,图4是任务数量与CPU负载之间的关系,CPU负载越低表明本方法分配给任务的截止期越小;在同样保证任务集合是EDF可调度的情况下,本发明提出的截止期分配方法与MLDM相比,可以为每个任务分配一个更小的截止期,消耗更小的CPU负载;当任务量超过350以后,MLDM的CPU利用率已经超过了1,意味着MLDM已经不能得到EDF可调度的集合。而本专利的算法FDA的利用率始终小于1,该算法在任务量较大的时候仍然可以成功的得到EDF可调度的任务集合。图5是任务数量与分配方法的迭代次数之间的关系示意图,迭代次数越多表明截止期分配所需要的执行时间越久;从测试结果图可以看出本发明所提出的截止期分配方法在任务数量较大的时候,迭代次数远小于MLDM算法,因此够节约大量的计算时间。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1