首页 / 专利库 / 电磁学 / 驻极体 / 综合模块化航空电子系统两级调度模型与原型平台

综合模化航空电子系统两级调度模型与原型平台

阅读:674发布:2022-10-10

专利汇可以提供综合模化航空电子系统两级调度模型与原型平台专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种综合模 块 化航空 电子 系统两级调度模型与 原型 平台,属于 航空电子 技术领域。本发明将两级调度模型按照 进程 时间是否连续,并根据分区调度策略和进程调度策略,分为三类组合方式,针对每一类组合方式各自完成未知参数的优化,并最终产生合理的调度方案及调度甘特图。本发明在经典的分区及进程调度模型 基础 上对IMA系统两级调度模型进行了拓展,原型平台结构完整,功能完备,可方便对多种两级调度模型及任意分区及进程参数进行验证,为研究更加高效的IMA两级调度策略提供平台;该原型平台采用模块化架构,支持添加新的调度策略以及新的调度 算法 ,可方便地实现对每个模块的替换,具备良好的可扩展性。,下面是综合模化航空电子系统两级调度模型与原型平台专利的具体信息内容。

1.综合模化航空电子系统两级调度模型,其特征在于:所述的两级调度模型按照进程时间是否连续分成两大类,如果进程时间连续,则每个进程在所属分区的第一次到达时刻同时到达,之后进程的到达时间与所有分区无关,仅与每个进程第一次进入就绪状态的时间和自身的周期有关;如果进程时间不连续,则每个分区中的进程执行状态在该分区的每次时间片结束时刻重置,任一分区的每次到达时刻,其内部的进程都会同时重新进入就绪状态;对于分区调度策略,包括分区轮转调度和新到分区优先执行调度,根据分区调度策略的选择不同,所有模型分为三大类组合方式,且每一类组合方式中对进程均有最早截止期限优先EDF调度算法、单调速率调度RMS算法供选择,根据第三类组合方式的模型的特点,对进程的调度策略增加了抢占阈值调度PTS算法;在所需参数输入下,针对上述每一类组合方式的模型,采用各自优化算法以完成未知参数的优化,并最终产生合理的调度方案及调度甘特图。
2.根据权利要求1所述的综合模块化航空电子系统两级调度模型,其特征在于:所述分区的基本参数包括:分区个数、每个分区的周期、每个分区的时间片长度、每个分区的初始到达时间;进程的基本参数包括每个进程的周期、每个进程的最坏执行时间、每个进程的截止时间;在单处理器下,对第一类组合方式,根据分区及进程的所有执行规则,所有分区的初始执行先后顺序不影响分区及进程集的可调度性,且在给定分区执行顺序的情况下,如果所有分区及进程的基本参数已知,则该分区及进程集的执行状态是确定的;第一类组合方式中由于分区采取了分区轮转调度策略,根据所有分区一次时间片长度之和等于分区主时间框架的假设,此时由每个分区的初始到达时间可推算出每个分区的时间片长度,且分区的主时间框架等于所有分区的周期;因此,待优化的参数仅有每个分区的初始到达时间;
在多处理器模式下,完成IMA系统两级调度首先还需对所有输入分区进行合理分组以实现系统更高的可调度性;因此,在多处理器两级调度优化时,输入参数还应包括处理器个数,输出参数还应包括分区的分组方案;
对第一类组合方式中模型在输入每个分区中的进程的基本参数后,则应首先判断当前输入的处理器个数,如果为多个处理器,则应对输入的所有分区进行分组操作,第一类组合方式的分组算法具体如下:
1)确定分组个数,即处理器个数,每个进程的周期和每个进程的最坏执行时间;根据每个分区内部所有进程的周期和最坏执行时间计算出每个分区的时间片长度在主时间框架中的最小占比 假设第i分区中有n个进程,j表示第i分区中的进程序号,Rij和Pij分别表示第i分区中第j个进程的最坏执行时间和周期;
2)将所有分区按照最小占比αi降序排列;
3)根据待分组分区的最小占比αi和待分组数计算每组最小占比αi的均值
其中,sum(αi)表示分区中所有最小占比αi的和,num_group表示待分组数目,其初始值为处理器个数;
4)比较α1与 大小关系,如果 则α1为一组,跳转到步骤5);如果α1小于 则比较α1+α2与 的关系,直到前t个分区的最小占比之和 不小于 此时如果 则前t个分区为一组,跳转到步骤5),否则逐个比较 与 的关系,直到找到满
足 的k值,如果上式任意一个等号成立,则将对应的分区分为
一组,跳转到步骤5),否则计算 取对应的分区分
为一组,跳转到步骤5),如果对任意k均有 则计算
其中t+m等于当前未分组的分区个数,取对应的分区为
一组,跳转到步骤5);
5)更新尚未分组的分区,更新αi编号,同时将待分组的组数减1;
6)重复步骤3)~5),直到所有分区均已分组,输出所有分区的分组情况;
在第一类组合方式得到所有分区的分组后,需对每一组分区运行优化算法寻找每个分区的最优初始到达时间;由于分区采取时间片轮转调度策略,在一个分区周期中,所有分区按顺序各执行一次,因此,此时的优化目标选为组内分区的主时间框架最大以实现在满足可调度的前提下最少的分区切换;对每一组分区运行的优化算法的具体流程如下:
输入:组内每个分区时间片长度在主时间框架中的最小占比 组内每个分
区中的所有进程周期、最坏执行时间、截止时间,算法停止阈值;
变量含义:
mtf_max分区主时间框架最大值;
mtf_min分区主时间框架最小值;
mtf_curr当前分区主时间框架值;
threshold算法停止阈值;
rate_min当前不可调度分区的时间片长度在当前次循环的主时间框架中占比的最小值,其与每个分区在主时间框架中的最小占比不同,该变量在伪码中作为中间变量而存在,用不可调度分区的αi进行初始化;
rate_max当前不可调度分区的时间片长度在当前次循环的主时间框架中占比的最大值;
rate_curr当前不可调度分区的时间片长度在当前次循环的主时间框架中占比;
(1)初始化分区主时间框架上下界值分别为所有分区中所有进程的周期最大值和0;
(2)当mtf_min+threshold初始化mtf_curr为mtf_min和mtf_max的均值,并根据当前mtf_curr以及每个分区在mtf_curr中的最小占比计算出此时每个分区的时间片长度,根据此时间片长度计算每个分区的初始到来时间,结合进程基本参数计算此时分区和进程集的可调度性,如不可调度则返回不可调度的分区号进入步骤(3),如可调度则用每个分区的时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_min,同时再次执行步骤(2);
(3)当存在分区不可调度,假设为分区1;将当前主时间框架中剩余的空闲占比全部分配给不可调度的分区1,此时分区1的占比为rate_max,判断系统的可调度性;此时分为三种情况:第一种情况,如果此时分区和进程集依然不可调度且此时不可调度的依然是同一个分区,则用每个分区时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_max,返回执行步骤(2);第二种情况,如果此时分区和进程集完全可调度,则用每个分区时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_min,返回执行步骤(2);第三种情况,如果此时分区和进程集依然不可调度但引起不可调度的分区不是分区1,则执行步骤(4);
(4)当rate_min+threshold/mtf_curr初始化rate_curr为rate_min和rate_max的均值,计算此时所有分区的时间片长度并计算分区和进程集的可调度性;此时存在两种情况:第一种情况,如果此时分区和进程集不可调度,且不可调度的分区依然是分区1,则将rate_curr的值赋给rate_min,同时再次执行步骤(4);第二种情况,如果此时系统不可调度但不可调度的分区不再是分区1,则将rate_curr的值赋给rate_max,同时再次执行步骤(4);
(5)更新此时分区主时间框架中剩余的空闲占比;如果此时所有分区均可调度,则返回执行步骤(2),否则返回步骤(3);
经过上述优化算法之后,最终得出满足分区和进程集可调度的分区主时间框架以及每个分区时间片长度在该主时间框架中的占比,进一步计算出每个分区的时间片长度,根据第一类组合方式中分区以及进程执行规则,所有分区及进程在时间轴上的执行情况唯一确定;此时计算出所有分区及进程的执行时间区间之后,在时间轴上画出系统的调度甘特图,即完成第一类组合方式中模型的仿真。
3.根据权利要求1所述的综合模块化航空电子系统两级调度模型,其特征在于:第二类组合方式中模型在进程时间连续的基础上对分区采用新到分区优先执行的分区调度策略;
模型将分区的周期以及进程的相关参数作为输入参数,将分区的另外两个参数作为待优化参数;对第二类组合方式,模型在输入每个分区中的进程参数后,也应首先判断处理器个数,如为多处理器,则对输入的所有分区进行分组操作;对第二类组合方式的分组算法如下:
输入:分组个数,即处理器个数,分区的周期,进程的周期和进程的最坏执行时间;
1)如果分区个数小于处理器个数,则每个处理器上分配一个分区可以实现最大的可调度性,否则,根据每个分区中所有进程的周期和最坏执行时间计算出每个分区在一个主时间框架内时间片总长度与在主时间框架内的最小占比 假设第i分区中有n个进程,j表示第i分区中的进程序号,Rij和Pij分别表示第i分区中第j个进程的最坏执行时间和周期;
2)根据分区周期对分区进行初步分组:首先将所有具有倍数关系的分区分为一组;然后使用适应度值函数f(x)选出具有最大适应度值的一组,适应度值函数f(x)如下:
此时x为每组内分区的最小占比之和;然后将选出的一组分区从待分组分区中删除,重复上述过程,直到所有分区均已分组;
3)此时的初步分组方案中分组个数与处理器个数关系不确定,同时每组之中的分区占比之和在极端情况仍然可能超出1;因此根据上述两种不确定关系,分以下几种情况进一步考虑分区分组方案:i)分组个数恰与处理器个数相等,且每组中分区的最小占比之和相差不大且均小于1,则直接作为最终的分区分组方案;ii)分组个数少于处理器个数,且不存在分区最小占比之和多于1的情况,则首先选取分区最小占比之和最大的一组,按照第一类组合方式中模型的分组算法将该组之内的分区分成两组,然后检查此时分组数与处理器个数的关系,如果分组数依然小于处理器个数,则再次选择当前分区最小占比之和最大的一组进行尽量均分,不断重复上述过程,直到分组数等于处理器个数,则输出分组方案;iii)分组个数多于处理器个数,且不存在分区最小占比之和多于1的情况,则计算分区最小占比之和最小的两组,如果该两组的最小占比之和不大于均值或者虽然大于均值但是小于一个设定的阈值,则将该两组直接合并为一组,如果将所有满足上述条件的分组合并之后依然多于处理器个数,则按照最小占比之和递升的顺序依次选取一组以所有分区在所有处理器上最小占比的均值为根据进行拆分,直到满足所有分组个数与处理器个数相等;iv)若存在某些分组的最小占比之和多于1的情况,则首先以所有分区在所有处理器上最小占比的均值为根据将所有最小占比之和多于1的组拆成两组且满足一组尽量接近所有分区在所有处理器上最小占比的均值;然后比较经过拆分的分组个数与处理器个数关系,分别转化成ii)或者iii)进行处理;
输出:所有分区的分组情况;
在第二类组合方式下,在得出所有分区的分组情况之后,对每一组分区,算法的优化目标为找到一种可行的调度方案;为了简化问题,约定所有分区初始到达时间顺序按照分区周期的升序排列,根据当前考虑分区的初始到达时间等于处理器上最早空闲时间的思想,通过逐个迭代的方式用所有分区的区间长度作为输入计算每个分区的初始到达时间;这样在减少一组优化参数的基础上,对每个分区的区间长度采用在特定约束条件下的随机策略寻找满足系统可调度性的调度方案;对每组分区的具体执行过程如下:
1)将组内所有分区按照周期的升序排列;
2)计算每组分区的主时间框架MTF=LCM(P1,P2...Pt);假设该组有t个分区,Pi表示第i个分区的周期,LCM()表示最小公倍数,计算每个分区在主时间框架中的执行次数num(i)=MTF/Pi;
3)根据已经得出的每个分区在一个主时间框架中的时间片总长度在一个主时间框架中的最小占比与MTF长度,计算每个分区在主时间框架中的最小长度min_length_partition(i);
4)对所有分区逐个依次执行下述操作,计算第i个分区的时间片长度:
length_partition(i)=min_length_partition(i)+floor((max_length_partition(i)-min_length_partition(i))×rand×CON)/CON
在上述公式中,floor()表示下取整,rand表示0到1之间的随机数,CON等于10q,q为正整数,其用来控制小数位的个数;length_partition(i)表示第i个分区的长度,max_length_partition(i)表示第i个分区的长度最大值,num(b)表示第b个分区在主时间框架中的执行次数;
5)约定第一个分区的初始到达时间作为0时刻,根据当前考虑分区的初始到达时间等于处理器上最早空闲时间的思想,逐个计算出每个分区的初始到达时间;
6)利用所有分区及进程参数计算当前系统的可调度性,如果可调度则计算出所有分区及进程的执行区间并画出系统的调度甘特图,如不可调度则重复4)~5),直到系统可调度或达到初始设置的尝试次数为止,此时则已完成第二类组合方式中模型的仿真。
4.根据权利要求1或3所述的综合模块化航空电子系统两级调度模型,其特征在于:第三类组合方式的仿真具体如下:
假设进程时间在所属分区的不同次执行之间相互独立,且选择的分区调度策略为新到分区优先执行;该类组合方式在可调度的前提下,以最小化分区中断次数和最小化所有分区的总执行时间与等待时间之和作为优化目标,其中最小中断次数为主优化目标,在相同中断次数的前提下,最小化所有分区总执行时间与等待时间之和;对于进程调度策略选择EDF、RMS或PTS调度策略;
在第三类组合方式下,约定每个分区的时间片长度为该分区内部所有进程最后一次执行的截止时间的最大值,由于分区内部所有进程在该分区的到达时刻同时进入就绪状态,因此分区长度的计算方式如下:
length_partition(i)=max((num_run_process(ij)-1)*period_process(ij)+deadline_process(ij))
在上述公式中,length_partition(i)表示第i个分区的长度,num_run_process(ij)、period_process(ij)、deadline_process(ij)分别表示第i个分区中第j个进程的执行次数、周期、截止时间;
在计算出每个分区的时间片长度后,应判断处理器个数,如为多处理器,则应对输入的所有分区进行分组操作;对该类组合方式,分组算法如下:
输入:分组个数,即处理器个数,分区的周期,分区的长度;
1)如果分区个数小于处理器个数,则每个处理器上分配一个分区以实现最大的可调度性,否则,根据分区周期和分区的长度计算出该分区在一个主时间框架中时间片总长度在一个主时间框架中的占比αi=Li/Pi,Li和Pi分别表示第i个分区的时间片长度和周期;
2)和3)同第二类组合方式中分区的分组算法的步骤2)和步骤3);
输出:所有分区的分组情况;
在进行分区参数优化之前需要先计算每个分区内部进程的执行区间,如果进程调度策略选为EDF或RMS,则直接根据进程的执行规则,对每个分区计算出内部所有进程在所属分区的一个完整时间片中的执行时间区间,并返回关键进程所对应的时间区间作为分区优化时的不可中断的约束条件;如果进程调度策略选为PTS,则应首先对每个分区中的进程分别执行优先级和阈值分配的优化算法;
接下来,以所有关键进程的执行区间为约束条件优化所有分区的初始到来时间,采用更改边界条件的标准粒子群算法,所述的标准粒子群算法的原理如下:
1)用实数编码的方式表示每个分区的初始到来时间,假设N个粒子,n个分区,则初始化后每个粒子的位置为xs(0)=[xs1,xs2,xs3…xsn],每个粒子的速度为vs(0)=[vs1,vs2,vs3…vsn],其中xsl表示第s个粒子位置的第l维取值,vsl表示第s个粒子速度的第l维取值,s=1,
2,…N,l=1,2…n;初始化粒子每个维度的位置以及速度的取值范围均分别为[0,period_partition(l)-length_partition(l)],1≤l≤n,设置粒子每个维度的速度最大值为(period_partition(l)-length_partition(l))/2;period_partition(l)表示第l个分区的周期,length_partition(l)表示第l个分区的时间片长度;
2)按照下述公式对所有粒子进行更新,共迭代M次:
vs(t+1)=w×vs(t)+c1×rand×(pbests-persent_xs)+c2×rand×(gbest-persent_xs)xs(t+1)=xs(t)+vs(t+1)
其中,vs(t+1)和xs(t+1)分别表示第s个粒子在第t+1代的速度和位置;w表示随迭代次数线性递减的惯性权重,w的最大值wmax和最小值wmin分别等于0.95和0.4;c1和c2取值为2,rand表示0到1之间的随机数,persent_xs表示第s个粒子当前的位置;如果在按照上述公式更新中粒子位置超出对应的取值范围,则对该粒子在取值空间中随机更新;每次对所有粒子进行更新之后计算所有更新粒子的适应度值,并根据每个粒子的适应度值更新pbests和gbest;
3)M次迭代完成后返回gbest;
该标准粒子群算法有两个优化目标,分别为每个处理器上所有分区总中断次数NI最小,每个处理器上所有分区总执行时间与等待执行时间之和SET最短,其中前者为主,在前者相同的前提下后者越小越好;这两个优化目标的计算方式如下:
1)计算主时间框架;计算每个分区在主时间框架中的执行次数;根据初始到达时间,计算每个分区在主时间框架内的每次到达时间;计算所有分区在主时间框架中执行的总次数SN;
2)将所有分区的到达时间按照从小到大进行排序,如相等,则以分区的升序排列;
3)设置所有分区的等待执行时间为0;
4)循环SN次;
(4.1)按照分区下次到达时间升序对所有分区的等待执行时间进行排序;
(4.2)比较排好序的所有分区的最近的下次到达时间与当前时间的差和当前到达分区时间片长度的大小,如果前者较大,则主时间框架首先为当前到达分区分配时间窗口,然后按照步骤(4.1)中的顺序为所有待执行的分区分配时间窗口,否则仅为当前到达分区分配时间窗口;
(4.3)根据步骤(4.2)对每个分区的等待执行时间进行更新;
5)计算所有分区的执行区间以及所有分区总中断次数和总执行时间;
最终经过粒子群优化算法之后得出每个分区的最优初始到来时间,根据所有的分区及进程参数,计算出在整个时间轴上的所有分区及进程的执行时间区间,画出相应的调度甘特图即完成第三类组合方式中模型的仿真。
5.根据权利要求4所述的综合模块化航空电子系统两级调度模型,其特征在于:第三类组合方式的仿真过程中所述的优先级和阈值分配的优化算法,具体如下:
给定优先级下阈值禁忌优化PTOGP是在确定优先级下优化阈值的算法;初始化阈值表示用当前优先级分配方案作为每个进程的阈值,并计算当前分区内进程的可调度性,如可调度则返回每个进程在执行过程中截止时间与完成时间差的最小值diff,同时用当前阈值方案初始化最优阈值方案;然后生成当前阈值的一步邻域方案即邻域解,即阈值分配方案中仅有一个进程的阈值与当前阈值方案不同,接着对所有的邻域方案进行可调度性分析,如可调度则同样返回每种方案下每个进程在执行过程中的diff,如不可调度则返回0;然后对所有邻域方案对应的diff使用适应度值评价方法找到最优邻域方案;如果其在禁忌表中则将该组方案舍去并重新计算,直到找到不在禁忌表中的最优邻域方案,比较其与当前最优方案的优劣,如果邻域最优方案更优,则用邻域最优方案更新当前最优方案,同时更新禁忌表,然后检测是否达到循环终止条件,如果不满足终止条件则对最优邻域方案继续生成一步邻域方案进行迭代,直到满足终止条件,最终输出在当前优先级下最优的阈值分配方案;
对于优先级阈值两级禁忌优化算法TPTPOA,首先根据截止时间越短,进程优先级越高的思想初始化每个进程的优先级,在当前优先级下,用每个进程的优先级初始化每个进程的阈值,在当前优先级和阈值分配下,系统状态唯一确定,判断此时的可调度性,如果不可调度则按照优先级由低到高的顺序将进程的阈值逐次提高1并判断可调度性,如果某一进程的阈值等于优先级的最大值依然不可调度,则该优先级方案下最小阈值组合不存在,也即当前优先级下不存在可行阈值分配方案;在存在最小阈值组合的情况下,则进入PTOGP,优化当前优先级下较优的阈值分配方案;之后该算法优化思路与PTOGP相同,其中由于所有进程优先级互不相同,优先级的邻域解生成方法为任选两个进程互换优先级。
6.根据权利要求5所述的综合模块化航空电子系统两级调度模型,其特征在于:所述的PTOGP和TPTPOA中适应度值评价的方法如下:
输入:PTOGP中当前优先级下所有阈值邻域解对应的最小值V1=diff,TPTPOA中所有优先级邻域解以及各自优化后的阈值下对应的最小值V2=diff;
评价方法:
1)对任意两组V1、V2,每组有r个元素,假设为V1={V11,V12…V1r}和V2={V21,V22…V2r},首先分别对其中的元素进行由小到大的排序,可以得到V*xd,其中x=1,2;d=1,2…r;
*
2)为Vxd中每一个元素分配对应的阈值(r-d+1);
3)分别计算V1和V2的适应度值F1和F2;计算方法如下:对每个d=1,2…r执行以下过程:
a)如果V*1d>V*2d,则将(r-d+1)×(V*1d-V*2d)/V*1d加到F1上,F2不变;
b)如果V*1d<V*2d,则将(r-d+1)×(V*2d-V*1d)/V*2d加到F2上,F1不变;
c)如果V*1d=V*2d,则F1和F2均保持不变;
4)比较F1和F2的大小,如果F1>F2,则V1={V11,V12…V1r}所对应的优先级阈值组合更优,反之则V2={V21,V22…V2r}对应的优先级阈值组合更优,如果两者相等,则V1={V11,V12…V1r}和V2={V21,V22…V2r}对应的优先级和阈值组合无差别;
5)对较优的一组优先级阈值分配方案与未比较的任意一组方案执行上述四个步骤1)~4),直到所有邻域方案对应的V=diff均已参与比较,最终输出最优的一组优先级阈值分配方案。
7.一种综合模块化航空电子系统两级调度模型的原型平台,其特征在于:所述的原型平台分为分区及进程策略选择模块、分区及进程参数输入模块、分区分组策略模块、调度算法模块、可调度性分析及适应度值计算模块、分区及进程执行区间计算模块和甘特图模块七个功能模块部分;
分区及进程策略选择模块的功能是根据所要仿真的模型选择相应的分区及进程调度策略;对分区共包含两种调度策略,分别为分区轮转调度策略和新到分区优先执行策略;对于进程共包含三种调度策略,分别为最早截止期限优先调度算法、单调速率调度算法和抢占阈值调度算法;根据此处选择的分区及进程的调度策略,平台组合出完整的分区及进程两级调度模型;
分区及进程参数输入模块的功能是根据分区及进程策略选择模块中选择的两级调度模型显示不同的数据输入界面以供用户输入该模型下完成两级调度所需要的参数;根据三类组合方式的两级调度模型,基本的输入参数包括进程的周期、最坏执行时间、截止时间;
在第一类组合方式中不需要输入分区参数,第二类和第三类组合方式中需要分区的周期参数,对第三类组合方式的进程还增加了执行次数和关键与否两组参数;该分区及进程参数输入模块中根据分区及进程策略选择模块中选择的模型的不同需要显示不同的参数输入界面;
分区分组策略模块完成的功能是在多处理器下,对每种模型中的所有分区实现分组,使所有分区中的进程顺利执行以实现可调度性;所有分区及其内部的进程在分组完毕之后只能在指定的处理器上运行,也即不允许任意分区和进程在执行过程中跨处理器执行;该分区分组策略模块中存在两种不同的分区分组策略,每种模型根据不同的分区调度策略下是否允许任意分区周期组合而选择对应的分组策略;
调度算法模块的功能是根据所选择的模型的不同,使用优化算法计算各类组合方式中模型的待优化参数;具体而言,对于第一类组合方式中的模型,优化算法的优化目标为最大化分区主时间框架以实现在满足可调度的前提下最少的分区切换;具体的优化算法为先计算出目标值的上界和每个分区区间长度在目标值中所占比率的下界,再对二者采用两层嵌套的二分法实现在系统可调度的前提下所有分区周期的优化;对于第二类组合方式中的模型,该模型下具有两组独立的未知参数,分别为分区的初始到达时间和分区的周期,规定当前考虑分区的初始到达时间等于处理器上最早空闲时间,这样通过逐个迭代的方式,用所有分区的时间片长度计算出每个分区的初始到达时间;因此,确定所有分区和进程在该类模型下的运行情况只有每个分区的时间片长度一个参数;这里对其采用随机算法寻找满足系统可调度性的调度方案;对于第三类组合方式的模型,此时进程时间在不同的分区之间以及同一分区的不同次执行之间不连续,因此,对分区和进程分别进行优化,对分区其优化目标为在满足系统可调度的前提下,实现最少的分区中断以及最小的所有分区总执行时间与等待之间之和,优化算法为采用改进边界条件的粒子群优化算法,当进程调度策略采取PTS时,对进程的优先级和阈值则采取两级禁忌优化算法;
可调度性分析及适应度值计算模块的功能是实现在任意一组候选参数下,判断当前系统的可调度性并在可调度的前提下计算出当前所选择优化目标的适应度值;该模块采用模拟实时内核运行的方式计算在所有分区和进程在任意一组候选解下任意时刻的运行情况,并输出所有分区和进程在所有分区和进程执行状态完全重复的周期T内的所有执行时间区间;根据分区的周期约束以及进程的截止时间约束判断系统在当前候选解下的可调度性以及对应的适应度值;调度算法模块和可调度性分析及适应度值计算模块的结合实现在所选模型和所输入的分区及进程参数下找到一组近优解;
分区及进程执行区间计算模块的功能是对可调度性分析及适应度值计算模块中优化后的参数结合所有输入参数计算所有分区及进程在T内的执行区间;
调度甘特图模块则是根据分区及进程执行区间计算模块中输出的所有分区和进程的执行时间区间以及处理器个数同时实现各处理器上运行的分区和进程的调度甘特图;对于第一类组合方式和第二类组合方式,为满足任意处理器、分区及进程参数,各处理器分别按照本处理器内分区的主时间框架的长度进行动态刷新显示,此处刷新率由用户自主设定;
对第三类组合方式,由于各处理器上的执行情况以本处理器内驻留的所有分区的主时间框架长度为周期进行重复,因此该类模型的甘特图分别按照各处理器的主时间框架长度进行静态显示。

说明书全文

综合模化航空电子系统两级调度模型与原型平台

技术领域

[0001] 本发明属于航空电子技术领域,具体涉及一种综合模块化航空电子系统两级调度模型及原型平台。

背景技术

[0002] 随着微电子技术、计算机技术、航空技术的迅猛发展,模块化、综合化成为航空电子系统的发展趋势。作为新一代航空电子系统,综合模块化航空电子系统(Integrated Modular Avionics,IMA)将所有的计算资源、I/O资源及其他系统资源集中在一起由软件平台管理。这种基于资源共享的架构从根本上解决了传统航空电子系统的不足,主要表现在:1)其可以实现按需求动态地进行资源分配,最大程度上减少资源分配的冗余度。2)软硬件隔离使系统升级更加方便,大大降低维护及升级成本。目前该系统已广泛应用于空客A380、波音B787等大型客机。为了规范IMA系统的开发及应用,ARINC公司发布了ARINC653标准。该标准中引入“分区”这一核心概念以实现航空电子系统高容错性和鲁棒性,但这也大大增加了系统资源统一调度模型及算法的设计难度。
[0003] 在ARINC653标准中,IMA系统存在两级调度,即模块中分区的调度,以及分区中相关进程的调度。由于分区的严格周期性以及无优先级等特性,其与普通嵌入式系统中进程及线程的基于优先级可抢占调度模型完全不同。近几十年来,航电系统的技术研究人员不断对IMA中分区及进程两级调度模型进行融合与完善。到目前为止,IMA系统两级调度模型及算法中仍有不足之处:ARINC653中虽规定了分区及进程的调度属性,但并未明确分区及进程的调度方案及方法;研究人员提出的一些模型及算法仅能适用于部分特殊情况;多数调度模型及算法仅能适用于单处理器下调度要求;多数模型及算法仅停留在理论思想层面,缺乏实际可调度性分析及算法有效性验证。

发明内容

[0004] 本发明的目的在于建立一个完整的综合模块化航空电子系统IMA系统两级调度模型及原型平台,实现在单处理器和多处理器下多种分区及进程调度模型及算法的仿真,同时支持动态添加和更换分区及进程的调度策略。
[0005] 本发明提供一种综合模块化航空电子系统两级调度模型与原型平台,所述的两级调度模型按照进程时间是否连续分成两大类。如果进程时间连续,则每个进程在所属分区的第一次到达时刻同时到达,之后进程的到达时间与所有分区无关,仅与每个进程第一次进入就绪状态的时间和自身的周期有关。如果进程时间不连续,则每个分区中的进程执行状态在该分区的每次时间片结束时刻重置,任一分区的每次到达时刻,其内部的进程都会同时重新进入就绪状态。对于分区调度策略,本发明目前提供两种选择,分别为分区轮转调度或者新到分区优先执行调度。根据分区调度策略的选择不同,所有模型可分为三大类,且每一类中对进程均可选择最早截止期限优先(Earliest Deadline First,EDF)调度算法、单调速率调度(Rate-Monotonic Scheduling,RMS)算法。此外,根据第三类模型的特点,进程的调度策略还可选择抢占阈值调度(Preemption Threshold Scheduling,PTS)算法。在所需参数输入下,针对上述每一类模型,本发明中均设计出各自优化算法以完成未知参数的优化,并最终产生合理的调度方案及调度甘特图。
[0006] 基于两级调度模型的设计方案及优化思路,本发明设计实现了用于仿真IMA系统两级调度模型的原型平台。该原型平台分为分区及进程策略选择模块、分区及进程参数输入模块、分区分组策略模块、调度算法模块、可调度性分析及适应度值计算模块、分区及进程执行区间计算模块和甘特图模块七个功能模块部分。
[0007] 分区及进程策略选择模块的主要功能是为两级调度模型中的分区及进程选择合适的运行策略,在该分区及进程策略选择模块中可供选择的分区调度策略有分区轮转调度和一种更高效的新到分区优先执行的调度策略,可供选择的进程调度策略有EDF算法、RMS算法和PTS算法。同时该分区及进程策略选择模块支持添加新的调度策略。
[0008] 分区及进程参数输入模块的主要功能是根据分区及进程策略选择模块中选择的分区及进程调度模型的不同,调用不同的分区及进程参数输入界面,以完成在当前选择的调度策略下分区及进程两级调度优化所需参数的输入。
[0009] 分区分组策略模块的主要功能判断当前是否选择在多处理器下进行分区及进程参数输入模块中输入的分区及进程的调度优化。如果为单处理器情况则直接跳过分区分组策略模块,否则根据分区及进程参数输入模块中输入的分区及进程参数进行合理的分区分组,以实现在多处理器情况下合理高效的两级调度。
[0010] 调度算法模块的主要功能是根据分区及进程策略选择模块中所选调度模型和分区及进程参数输入模块的输入以及分区分组策略模块的分组结果,对分区的初始到达时间等参数选择合适的优化算法进行优化。同时如果进程的调度策略选择为抢占阈值调度算法(PTS算法),则使用两级禁忌调度算法对每个进程的优先级和阈值进行优化。
[0011] 可调度性分析及适应度值计算模块的主要功能是配合调度算法模块完成在选择的调度模型下算法优化过程中任意候选解的可调度性判断,以及所选取的优化目标的适应度值计算。经过调度算法模块和可调度性分析及适应度值计算模块之后输出经过优化的分区和进程调度参数。
[0012] 分区及进程执行区间计算模块的主要功能是根据优化的分区及进程调度参数以及输入的分区及进程的基本参数,计算在整个时间轴上所有分区和进程在任意时刻的执行情况,并根据当前选择的调度模型,对输出的时间区间进行相应处理,最终输出所有分区和进程的执行时间区间。
[0013] 甘特图模块的主要功能是根据所选择的处理器个数,对分区及进程执行区间计算模块中输出的分区和进程的执行时间区间画出所有分区和进程在执行情况完全重复的时间窗内的调度甘特图。
[0014] 本发明的优点在于:
[0015] (1)本发明在经典的分区及进程调度模型基础上对IMA系统两级调度模型进行了拓展,为IMA系统两级调度模型的设计提供了更多思路和选择,同时部分模型在调度参数的设计上更加灵活,支持任意分区周期参数。
[0016] (2)该原型平台结构完整,功能完备,可方便对多种两级调度模型及任意分区及进程参数进行验证,为研究更加高效的IMA两级调度策略提供平台。
[0017] (3)该原型平台采用模块化架构,支持添加新的调度策略以及新的调度算法,可方便地实现对每个模块的替换,具备良好的可扩展性。附图说明
[0018] 图1是本发明目前包含的两级调度模型示意图;
[0019] 图2是本发明原型平台实现的功能原理流程图
[0020] 图3是本发明中进程调度策略选为PTS算法时的进程级两级禁忌优化算法原理图;

具体实施方式

[0021] 下面将结合附图对本发明做进一步的详细说明。
[0022] 本发明提供一种综合模块化航空电子系统两级调度模型与原型平台,包括分区及进程两级调度模型设计、分区及进程两级调度算法设计、多处理器下调度算法设计等。所述的IMA系统两级调度模型如图1所示,所有两级调度模型根据进程时间连续与否首先分成两个大类:第一类模型以所有进程为执行单位,所有进程仅在所属分区的时间片之内执行,在执行过程中所有进程时间是连续的,其执行过程不受分区影响,也即所有进程都在所属分区的第一次时间片到达时同时到达,之后所有进程的每次到达时间均根据自身周期进行计算;第二类模型则以分区为单位,进程时间非连续,分区的一次完整执行表示分区中的功能完整执行一次,每个分区中的所有进程在该分区的不同时间片之间的时间计算互不影响,也即所有进程在所属分区的每次到达时刻都重新初始化并进入就绪状态。依据这两类模型对于时间的定义不同,在分区和进程调度策略选择时依据自身特点有如图1所示的三类组合方式,第一类组合方式进程时间连续,分区调度策略选择分区轮转调度,进程调度策略为EDF和RMS;第二类组合方式进程时间连续,分区调度策略选择新到分区优先执行,进程调度策略为EDF和RMS;第三类组合方式进程时间非连续,分区调度策略选择新到分区优先执行,进程调度策略为PTS、EDF和RMS。
[0023] 第一类组合方式中对分区采用经典的时间片轮转调度策略。在系统执行过程中,每个分区被分配一个属于自身的时间片,每个分区的时间片长度可为任意值。所有分区的周期相同,且每个分区在一个周期中只有一个时间片。所有分区按照系统所分配的时间片长度轮流执行。在该类模型中对进程可以选择EDF或RMS调度策略。此时所有进程依据所选择的调度策略和输入的自身周期在所属的分区时间片中有序执行。若某一进程按自身周期到达,但当前时间片并未分配给进程所属分区,则该进程需等待其所属分区的时间片到达才可执行。此时,无论进程选用何种调度策略,系统可调度的充分必要条件为所有进程的每次执行均不超过其截止时间。由于所有分区在一个分区的主时间框架(MTF,所有分区周期的最小公倍数)中均执行一次,故在整个时间轴上,较大的主时间框架意味着更少的分区切换次数。因此,该第一类组合方式以在可调度性前提下最大化分区主时间框架为优化目标对所有调度系统未知参数进行优化。
[0024] 对整个调度系统而言,分区的基本参数包括:分区个数、每个分区的周期、每个分区的时间片长度、每个分区的初始到达时间。进程的基本参数包括每个进程的周期、每个进程的最坏执行时间、每个进程的截止时间。在单处理器下,对第一类组合方式,根据分区及进程的所有执行规则,所有分区的初始执行先后顺序不影响分区及进程集的可调度性,且在给定分区执行顺序的情况下,如果所有分区及进程的基本参数已知,则该分区及进程集的执行状态是确定的。该第一类组合方式中由于分区采取了时间片轮转调度策略,根据所有分区一次时间片长度之和等于分区主时间框架的假设,此时由每个分区的初始到达时间可推算出每个分区的时间片长度,且分区的主时间框架等于所有分区的周期。因此,待优化的参数仅有每个分区的初始到达时间。在多处理器模式下,完成IMA系统两级调度首先还需对所有输入分区进行合理分组以实现系统更高的可调度性。因此,在多处理器两级调度优化时,输入参数还应包括处理器个数,输出参数还应包括分区的分组方案。有关第一类组合方式中模型详细的输入输出参数表如表1所示。
[0025] 表1第一类组合方式模型输入及输出参数表
[0026]
[0027]
[0028] 对第一类组合方式中模型在输入每个分区中的进程的基本参数后,则应首先判断当前输入的处理器个数。如果为多个处理器,则应对输入的所有分区进行分组操作。由于所有分区的周期相同,因此对该第一类组合方式中分组算法的总体思路是所有处理器的使用率尽量均衡。所述第一类组合方式的分组算法具体如下:
[0029] 1)确定分组个数(处理器个数),每个进程的周期和每个进程的最坏执行时间。根据每个分区内部所有进程的周期和最坏执行时间计算出每个分区的时间片长度在主时间框架中的最小占比 (假设第i分区中有n个进程,j表示第i分区中的进程序号,Rij和Pij分别表示第i分区中第j个进程的最坏执行时间和周期);
[0030] 2)将所有分区按照最小占比αi降序排列;
[0031] 3)根据待分组分区的最小占比αi和待分组数计算每组最小占比αi的均值[0032]
[0033] 其中,sum(αi)表示分区中所有最小占比αi的和,num_group表示待分组数目,其初始值为处理器个数。
[0034] 4)比较α1与 大小关系,如果 则α1为一组,跳转到步骤5);如果α1小于 则比较α1+α2与 的关系,直到前t个分区的最小占比之和 不小于 此时如果则前t个分区为一组,跳转到步骤5),否则逐个比较 与 的关系,直到找到满足 的k值,如果上式任意一个等号成立,则将对应的分区分为一组,跳转到步骤5),否则计算 取对应的分区
分为一组,跳转到步骤5),如果对任意k均有 则计算
其中t+m等于当前未分组的分区个数,取对应的分区
为一组,跳转到步骤5);
[0035] 5)更新尚未分组的分区,更新αi编号,同时将待分组的组数减1;
[0036] 6)重复步骤3)~5),直到所有分区均已分组,输出所有分区的分组情况。
[0037] 在第一类模型下得到所有分区的分组后,需对每一组分区运行优化算法寻找每个分区的最优初始到达时间。由于分区采取时间片轮转调度策略,在一个分区周期中,所有分区按顺序各执行一次,因此,此时的优化目标选为组内分区的主时间框架最大以实现在满足可调度的前提下最少的分区切换。优化算法基本思路为先计算出目标值的上界和每个分区时间片长度在目标值中占比的下界,再对二者采用两层嵌套的二分法实现在系统可调度前提下未知参数的优化,所述对每一组分区运行的优化算法的具体流程如下:
[0038] 输入:组内每个分区时间片长度在主时间框架中的最小占比 组内每个分区中的所有进程周期、最坏执行时间、截止时间,算法停止阈值(这里选用10-3)。
[0039] 变量含义:
[0040] mtf_max分区主时间框架最大值
[0041] mtf_min分区主时间框架最小值
[0042] mtf_curr当前分区主时间框架值
[0043] threshold算法停止阈值
[0044] rate_min当前不可调度分区的时间片长度在当前次循环的主时间框架中占比的最小值(其与每个分区在主时间框架中的最小占比不同,该变量在伪码中作为中间变量而存在,用不可调度分区的αi进行初始化)
[0045] rate_max当前不可调度分区的时间片长度在当前次循环的主时间框架中占比的最大值
[0046] rate_curr当前不可调度分区的时间片长度在当前次循环的主时间框架中占比[0047] (1)初始化分区主时间框架上下界值分别为所有分区中所有进程的周期最大值和0;
[0048] (2)当mtf_min+threshold
[0049] 初始化mtf_curr为mtf_min和mtf_max的均值,并根据当前mtf_curr以及每个分区在mtf_curr中的最小占比计算出此时每个分区的时间片长度,根据此时间片长度计算每个分区的初始到来时间,结合进程基本参数计算此时分区和进程集的可调度性,如不可调度则返回不可调度的分区号进入步骤(3),如可调度则用每个分区的时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_min,同时再次执行步骤(2)。
[0050] (3)当存在分区不可调度,假设为分区1
[0051] 将当前主时间框架中剩余的空闲占比全部分配给不可调度的分区1(此时分区1的占比为rate_max),判断系统的可调度性。此时分为三种情况:第一种情况,如果此时分区和进程集依然不可调度且此时不可调度的依然是同一个分区,则用每个分区时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_max,返回执行步骤(2)。第二种情况,如果此时分区和进程集完全可调度,则用每个分区时间片长度在主时间框架中的最小占比重新初始化当前各分区时间片长度在主时间框架中占比,同时将mtf_curr的值赋给mtf_min,返回执行步骤(2)。第三种情况,如果此时分区和进程集依然不可调度但引起不可调度的分区不是分区1,则执行步骤(4)。
[0052] (4)当rate_min+threshold/mtf_curr
[0053] 初始化rate_curr为rate_min和rate_max的均值,计算此时所有分区的时间片长度并计算分区和进程集的可调度性。此时存在两种情况:第一种情况,如果此时分区和进程集不可调度,且不可调度的分区依然是分区1,则将rate_curr的值赋给rate_min,同时再次执行步骤(4)。第二种情况,如果此时系统不可调度但不可调度的分区不再是分区1,则将rate_curr的值赋给rate_max,同时再次执行步骤(4)。
[0054] (5)更新此时分区主时间框架中剩余的空闲占比。如果此时所有分区均可调度,则返回执行步骤(2),否则返回步骤(3)。
[0055] 经过上述优化算法之后,最终可以得出满足分区和进程集可调度的分区主时间框架以及每个分区时间片长度在该主时间框架中的占比,进一步可计算出每个分区的时间片长度,根据第一类组合方式中分区以及进程执行规则,所有分区及进程在时间轴上的执行情况唯一确定。此时计算出所有分区及进程的执行时间区间之后,在时间轴上画出系统的调度甘特图,即完成第一类组合方式中模型的仿真。
[0056] 第二类组合方式中模型在进程时间连续的基础上对分区采用新到分区优先执行的分区调度策略。该分区调度策略的核心概念为任意时刻依据自身周期新到达的分区优先执行。也即如果A分区在执行过程中B分区到达,则在B分区到达时刻B分区优先执行,A分区中尚未执行完的时间片进入等待状态。除此之外,定义同时到达的分区,周期较小的分区优先执行;对于多个尚未执行完但由于新到达分区的抢占而进入等待状态的分区,在CPU空闲时,优先执行下次到达时间最近的分区,如果存在多个下次到达时间相同的情况,则它们的恢复顺序不影响结果,因此选择恢复顺序为最先到达的分区的最先恢复。在分区上述执行规则下,分区可调度的充分必要条件为该分区下一次到达之前,其当前次到达已经执行完毕。此第二类组合方式中在模型理论上兼容任意分区周期组合,增强了模型的适用性。对于该第二类组合方式中模型,目前可供选择的进程的调度策略也为EDF和RMS两种。此时如果分区的三组基本参数已知,则根据分区的执行规则以及恢复规则,分区在整个时间轴上的执行状态是固定的,又由于每个分区中的进程在每个分区的第一次到达时同时释放,根据每个进程的周期、所选择的进程的调度策略以及相关的进程运行规则,进程的所有执行状态也是固定的。该第二类组合方式中模型虽可支持任意选择的分区周期参数,但是复杂互质的分区周期将导致分区的频繁中断,进而影响进程的执行,这使得满足系统可调度性的参数难以寻找。因此,在该第二类组合方式的模型下,优化的目标是找到合适的分区参数满足系统的可调度性。
[0057] 由于分区调度策略的不同,分区的周期、时间片长度、初始到达时间将不再具有第一类组合方式中模型的推导关系,在该第二类组合方式中三者相互独立。该第二类组合方式中模型将分区的周期以及进程的相关参数作为输入参数,将分区的另外两个参数作为待优化参数。有关第二类组合方式中模型详细的输入输出参数表如表2所示。
[0058] 表2第二类组合方式模型输入及输出参数表
[0059]
[0060] 对第二类组合方式,模型在输入每个分区中的进程参数后,也应首先判断处理器个数,如为多处理器,则对输入的所有分区进行分组操作。由于在该类模型下,同一处理器中分区周期复杂的互质关系将导致在一个分区的主时间框架中分区的频繁中断以及进程的频繁等待,从而导致大量的分区切换时间甚至进程在截止期限之内无法完成导致调度失败。因此,对该类模型,分组算法的总体思想是在将具有相同周期或周期具有倍数关系的分区分在一组的基础上实现各处理器的使用率尽量均衡。分区的分组算法原理如下:
[0061] 输入:分组个数(处理器个数),分区的周期,进程的周期和进程的最坏执行时间[0062] 1)如果分区个数小于处理器个数,则每个处理器上分配一个分区可以实现最大的可调度性,否则,根据每个分区中所有进程的周期和最坏执行时间计算出每个分区在一个主时间框架内时间片总长度与在主时间框架内的最小占比 (假设第i分区中有n个进程,j表示第i分区中的进程序号,Rij和Pij分别表示第i分区中第j个进程的最坏执行时间和周期);
[0063] 2)根据分区周期对分区进行初步分组:首先将所有具有倍数关系的分区分为一组(每组之中的每一个分区周期都可以整除比其小的分区周期),且所有分区可以重复分在每一组中;然后使用适应度值函数f(x)选出具有最大适应度值的一组,适应度值函数f(x)如下:
[0064]
[0065] 此时x为每组内分区的最小占比之和。然后将选出的一组分区从待分组分区中删除,重复上述过程,直到所有分区均已分组;
[0066] 3)此时的初步分组方案中分组个数与处理器个数关系不确定,同时每组之中的分区占比之和在极端情况仍然可能超出1。因此根据上述两种不确定关系,分以下几种情况进一步考虑分区分组方案:i)分组个数恰与处理器个数相等,且每组中分区的最小占比之和相差不大且均小于1,则直接作为最终的分区分组方案;ii)分组个数少于处理器个数,且不存在分区最小占比之和多于1的情况,则首先选取分区最小占比之和最大的一组,按照第一类组合方式中模型的分组算法将该组之内的分区分成两组,然后检查此时分组数与处理器个数的关系,如果分组数依然小于处理器个数,则再次选择当前分区最小占比之和最大的一组进行尽量均分,不断重复上述过程,直到分组数等于处理器个数,则输出分组方案;iii)分组个数多于处理器个数,且不存在分区最小占比之和多于1的情况,则计算分区最小占比之和最小的两组,如果该两组的最小占比之和不大于均值或者虽然大于均值但是小于一个设定的阈值(这里选为0.7),则将该两组直接合并为一组,如果将所有满足上述条件的分组合并之后依然多于处理器个数,则按照最小占比之和递升的顺序依次选取一组以所有分区在所有处理器上最小占比的均值为根据进行拆分,直到满足所有分组个数与处理器个数相等;iv)若存在某些分组的最小占比之和多于1的情况,则首先以所有分区在所有处理器上最小占比的均值为根据将所有最小占比之和多于1的组拆成两组且满足一组尽量接近所有分区在所有处理器上最小占比的均值。然后比较经过拆分的分组个数与处理器个数关系,分别转化成ii)或者iii)进行处理。
[0067] 输出:所有分区的分组情况。
[0068] 在第二类组合方式下,在得出所有分区的分组情况之后,对每一组分区,算法的优化目标为找到一种可行的调度方案。为了简化问题,约定所有分区初始到达时间顺序按照分区周期的升序排列,根据当前考虑分区的初始到达时间等于处理器上最早空闲时间的思想,通过逐个迭代的方式用所有分区的区间长度作为输入计算每个分区的初始到达时间。这样在减少一组优化参数的基础上,对每个分区的区间长度采用在一定约束条件下的随机策略寻找满足系统可调度性的调度方案。对每组分区的具体执行过程如下:
[0069] 1)将组内所有分区按照周期的升序排列;
[0070] 2)计算每组分区的主时间框架MTF=LCM(P1,P2...Pt)(假设该组有t个分区,Pi表示第i个分区的周期,LCM()表示最小公倍数),计算每个分区在主时间框架中的执行次数num(i)=MTF/Pi;
[0071] 3)根据已经得出的每个分区在一个主时间框架中的时间片总长度在一个主时间框架中的最小占比与MTF长度,计算每个分区在主时间框架中的最小长度min_length_partition(i);
[0072] 4)对所有分区逐个依次执行下述操作,计算第i个分区的时间片长度:
[0073]
[0074] length_partition(i)=min_length_partition(i)+floor((max_length_partition(i)-min_length_partition(i))×rand×CON)/CON
[0075] 在上述公式中,floor()表示下取整,rand表示0到1之间的随机数,CON等于10q(q为正整数),其用来控制小数位的个数;length_partition(i)表示第i个分区的长度,max_length_partition(i)表示第i个分区的长度最大值,num(b)表示第b个分区在主时间框架中的执行次数。
[0076] 5)约定第一个分区的初始到达时间作为0时刻,根据当前考虑分区的初始到达时间等于处理器上最早空闲时间的思想,逐个计算出每个分区的初始到达时间;
[0077] 6)利用所有分区及进程参数计算当前系统的可调度性,如果可调度则计算出所有分区及进程的执行区间并画出系统的调度甘特图,如不可调度则重复4)~5),直到系统可调度或达到初始设置的尝试次数为止,此时则已完成第二类组合方式中模型的仿真。
[0078] 第三类组合方式中模型假设进程时间在所属分区的不同次执行之间相互独立,且选择与第二类组合方式中相同的分区调度策略。与第二类组合方式相似:过于复杂的分区周期组合可能会导致频繁的分区中断和过多的分区切换时间。但由于进程时间在分区之间的非连续性,从而,该类组合方式中分区的主时间框架不仅是分区执行时间片完全重复的周期,同样也是所有进程执行状态完全重复的周期。此时不同分区以及相同分区的不同次执行对进程的执行均没有影响,进程的所有执行状态非常有限,因此对于该类组合方式,即使在复杂的分区周期下也存在大量满足系统可调度性的候选解。因此,该类组合方式在可调度的前提下,以最小化分区中断次数和最小化所有分区的总执行时间与等待时间之和作为优化目标,其中最小中断次数为主优化目标,在相同中断次数的前提下,最小化所有分区总执行时间与等待时间之和。对于进程调度策略,在该类组合方式中除EDF和RMS调度策略之外,还增加一种可以实现更高可调度性的调度策略PTS。PTS的核心思想是为每一个进程分配一个优先级和阈值,任意两个分区优先级不同,但阈值可以相同,且优先级和阈值具有相同的取值空间。对于任意进程,其阈值不低于其优先级。在执行过程中,只有当新到达的进程的优先级高于正在执行的进程的阈值时才可以抢占执行。PTS进程调度策略通过合适的优先级和阈值分配,通过限制一部分抢占的发生,从而让进程实现更好的可调度性。
[0079] 对于第三类组合方式,每个进程的相关时间仅在所属分区内部计算,此时兼容任意分区周期状态。根据该类组合方式下分区以及进程在执行过程中的相关定义,需要已知每个分区在完成某一功能时每个进程所执行的次数,为了在执行过程中实现某些关键进程不可被中断,输入参数还应包括每个进程是否为关键进程(用0/1表示,0表示普通进程,1表示关键进程)。该类组合方式详细的输入参数以及输出参数如表3所示。
[0080] 表3第三类组合方式模型输入及输出参数表
[0081]
[0082] 在第三类组合方式下,约定每个分区的时间片长度为该分区内部所有进程最后一次执行的截止时间的最大值,由于分区内部所有进程在该分区的到达时刻同时进入就绪状态,因此分区长度的计算方式如下:
[0083] length_partition(i)=max((num_run_process(ij)-1)*period_process(ij)+deadline_process(ij))
[0084] 在上述公式中,length_partition(i)表示第i个分区的长度,num_run_process(ij)、period_process(ij)、deadline_process(ij)分别表示第i个分区中第j个进程的执行次数、周期、截止时间。
[0085] 在计算出每个分区的时间片长度后,应判断处理器个数,如为多处理器,则应对输入的所有分区进行分组操作。由于在该类组合方式中采用了与第二类组合方式中相同的分区调度策略。因此,对该类组合方式,分组算法的总体思想依然是在将具有相同周期或周期具有倍数关系的分区分在一组的基础上实现各处理器的使用率尽量均衡。分区的分组算法原理如下:
[0086] 输入:分组个数(处理器个数),分区的周期,分区的长度
[0087] 1)如果分区个数小于处理器个数,则每个处理器上分配一个分区可以实现最大的可调度性,否则,根据分区周期和分区的长度计算出该分区在一个主时间框架中时间片总长度在一个主时间框架中的占比αi=LiPi(Li和Pi分别表示第i个分区的时间片长度和周期);
[0088] 2)和3)同第二类组合方式中分区的分组算法的步骤2)和步骤3)。
[0089] 输出:所有分区的分组情况。
[0090] 由于在该类组合方式下,约定关键进程在执行过程中,分区不可中断。因此,在进行分区参数优化之前需要先计算每个分区内部进程的执行区间。此时,如果进程调度策略选为EDF或RMS,则可直接根据进程的执行规则,对每个分区计算出内部所有进程在所属分区的一个完整时间片中的执行时间区间,并返回关键进程所对应的时间区间作为分区优化时的不可中断的约束条件。如果进程调度策略选为PTS,则应首先对每个分区中的进程分别执行优先级和阈值分配的优化算法。该优化算法的整体流程如图3所示。
[0091] 在图3所示的流程图中,给定优先级下阈值禁忌优化(PTOGP)是在确定优先级下优化阈值的算法。初始化阈值表示用当前优先级分配方案作为每个进程的阈值,并计算当前分区内进程的可调度性,如可调度则返回每个进程在执行过程中截止时间与完成时间差的最小值(diff),同时用当前阈值方案初始化最优阈值方案。然后生成当前阈值的一步邻域方案(邻域解),即阈值分配方案中仅有一个进程的阈值与当前阈值方案不同,接着对所有的邻域方案进行可调度性分析(最坏响应时间分析),如可调度则同样返回每种方案下每个进程在执行过程中的diff,如不可调度则返回0。然后对所有邻域方案对应的diff使用适应度值评价方法找到最优邻域方案。如果其在禁忌表中则将该组方案舍去并重新计算,直到找到不在禁忌表中的最优邻域方案,比较其与当前最优方案的优劣,如果邻域最优方案更优,则用邻域最优方案更新当前最优方案,同时更新禁忌表,然后检测是否达到循环终止条件(这里选用迭代次数20次),如果不满足终止条件则对最优邻域方案继续生成一步邻域方案(邻域解)进行迭代,直到满足终止条件,最终输出在当前优先级下最优的阈值分配方案(阈值组合)。
[0092] 对于优先级阈值两级禁忌优化算法(TPTPOA),首先根据截止时间越短,进程优先级越高的思想初始化每个进程的优先级,在当前优先级下,用每个进程的优先级初始化每个进程的阈值,在当前优先级和阈值分配下,系统状态唯一确定,判断此时的可调度性,如果不可调度则按照优先级由低到高的顺序将进程的阈值逐次提高1并判断可调度性,如果某一进程的阈值等于优先级的最大值依然不可调度,则该优先级方案下最小阈值组合不存在,也即当前优先级下不存在可行阈值分配方案。在存在最小阈值组合的情况下,则进入PTOGP,优化当前优先级下较优的阈值分配方案。之后该算法优化思路与PTOGP基本相同,其中由于所有进程优先级互不相同,优先级的邻域解生成方法为任选两个进程互换优先级。
[0093] 在PTOGP和TPTPOA中适应度值评价的方法如下:
[0094] 输入:当前优先级下所有阈值邻域解对应的V=diff(PTOGP中),所有优先级邻域解以及各自优化后的阈值下对应的V=diff(TPTPOA中)
[0095] 评价方法:
[0096] 1)对任意两组V1、V2,每组有r个元素,假设为V1={V11,V12…V1r}和V2={V21,V22…V2r},首先分别对其中的元素进行由小到大的排序,可以得到V*xd,其中x=1,2;d=1,2…r;
[0097] 2)为V*xd中每一个元素分配对应的阈值(r-d+1);
[0098] 3)分别计算V1和V2的适应度值F1和F2;计算方法如下:对每个d=1,2…r执行以下过程:
[0099] a)如果V*1d>V*2d,则将(r-d+1)×(V*1d-V*2d)/V*1d加到F1上,F2不变;
[0100] b)如果V*1d<V*2d,则将(r-d+1)×(V*2d-V*1d)/V*2d加到F2上,F1不变;
[0101] c)如果V*1d=V*2d,则F1和F2均保持不变;
[0102] 4)比较F1和F2的大小,如果F1>F2,则V1={V11,V12…V1r}所对应的优先级阈值组合更优,反之则V2={V21,V22…V2r}对应的优先级阈值组合更优,如果两者相等,则V1={V11,V12…V1r}和V2={V21,V22…V2r}对应的优先级和阈值组合无差别。
[0103] 5)对较优的一组优先级阈值分配方案与未比较的任意一组方案执行上述四个步骤1)~4),直到所有邻域方案对应的V=diff均已参与比较,最终输出最优的一组优先级阈值分配方案。
[0104] 接下来,以所有关键进程的执行区间为约束条件优化所有分区的初始到来时间。本发明中采用更改边界条件的标准粒子群算法。所述的标准粒子群算法的原理如下:
[0105] 1)用实数编码的方式表示每个分区的初始到来时间,假设N个粒子,n个分区,则初始化后每个粒子的位置为xs(0)=[xs1,xs2,xs3…xsn],每个粒子的速度为vs(0)=[vs1,vs2,vs3…vsn],其中xsl表示第s个粒子位置的第l维取值,vsl表示第s个粒子速度的第l维取值,s=1,2,…N,l=1,2…n;初始化粒子每个维度的位置以及速度的取值范围均分别为[0,period_partition(l)-length_partition(l)],1≤l≤n,设置粒子每个维度的速度最大值为(period_partition(l)-length_partition(l))/2;period_partition(l)表示第l个分区的周期,length_partition(l)表示第l个分区的时间片长度;
[0106] 2)按照下述公式对所有粒子进行更新,共迭代M次:
[0107] vs(t+1)=w×vs(t)+c1×rand×(pbests-persent_xs)+c2×rand×(gbest-persent_xs)
[0108] xs(t+1)=xs(t)+vs(t+1)
[0109] 其中,vs(t+1)和xs(t+1)分别表示第s个粒子在第t+1代的速度和位置;w表示随迭代次数线性递减的惯性权重,w的最大值wmax和最小值wmin分别等于0.95和0.4;c1和c2取值为2,rand表示0到1之间的随机数,persent_xs表示第s个粒子当前的位置;如果在按照上述公式更新中粒子位置超出对应的取值范围,则对该粒子在取值空间中随机更新;每次对所有粒子进行更新之后计算所有更新粒子的适应度值,并根据每个粒子的适应度值更新pbests和gbest;
[0110] 3)M次迭代完成后返回gbest。
[0111] 该标准粒子群算法有两个优化目标,分别为每个处理器上所有分区总中断次数NI最小,每个处理器上所有分区总执行时间与等待执行时间之和SET最短,其中前者为主,在前者相同的前提下后者越小越好。这两个优化目标的计算方式如下:
[0112] 1)计算主时间框架;计算每个分区在主时间框架中的执行次数;根据初始到达时间,计算每个分区在主时间框架内的每次到达时间;计算所有分区在主时间框架中执行的总次数SN。
[0113] 2)将所有分区的到达时间按照从小到大进行排序,如相等,则以分区的升序排列。
[0114] 3)设置所有分区的等待执行时间为0。
[0115] 4)循环(SN次)
[0116] (4.1)按照分区下次到达时间升序对所有分区的等待执行时间进行排序;
[0117] (4.2)比较排好序的所有分区的最近的下次到达时间与当前时间的差和当前到达分区时间片长度的大小,如果前者较大,则主时间框架首先为当前到达分区分配时间窗口,然后按照步骤(4.1)中的顺序为所有待执行的分区分配时间窗口,否则仅为当前到达分区分配时间窗口;
[0118] (4.3)根据步骤(4.2)对每个分区的等待执行时间进行更新。
[0119] 5)计算所有分区的执行区间以及所有分区总中断次数和总执行时间。
[0120] 最终经过粒子群优化算法之后得出每个分区的最优初始到来时间,根据所有的分区及进程参数,计算出在整个时间轴上的所有分区及进程的执行时间区间,画出相应的调度甘特图即完成第三类组合方式中模型的仿真。
[0121] 基于上述目前包含的三类组合方式及相应的优化算法,本发明搭建了IMA系统分区及进程两级调度原型平台。该原型平台原理结构如图2所示,该原型平台按照功能共分为分区及进程策略选择模块、分区及进程参数输入模块、分区分组策略模块、调度算法模块、可调度性分析及适应度值计算模块、分区及进程执行区间计算模块和甘特图模块七个功能模块部分。
[0122] 分区及进程策略选择模块的主要功能是根据所要仿真的模型选择相应的分区及进程调度策略。目前在原型平台中对分区共包含两种调度策略,分别为分区轮转调度策略和新到分区优先执行策略。对于进程共包含三种调度策略,分别为最早截止期限优先调度算法、单调速率调度算法和抢占阈值调度算法。根据此处选择的分区及进程的调度策略,平台组合出完整的分区及进程两级调度模型。所有分区及进程在之后优化及调度过程中的执行规则在此确定。
[0123] 分区及进程参数输入模块则是根据分区及进程策略选择模块中选择的两级调度模型显示不同的数据输入界面以供用户输入该模型下完成两级调度所需要的参数。根据上述三类组合方式的介绍,基本的输入参数包括进程的周期、最坏执行时间、截止时间。但在第一类组合方式中不需要输入分区参数,第二类和第三类组合方式中需要分区的周期参数,而且为了完善第三类组合方式的定义,对进程还增加了执行次数和关键与否两组参数。因此该分区及进程参数输入模块中根据分区及进程策略选择模块中选择的模型的不同需要显示不同的参数输入界面。
[0124] 分区分组策略模块完成的主要功能是在多处理器下,对每种模型中的所有分区实现一种较为合理的分组方式,使所有分区中的进程可以顺利执行以实现系统更高的可调度性。这里所有分区及其内部的进程在分组完毕之后只能在指定的处理器上运行,也即不允许任意分区和进程在执行过程中跨处理器执行。该分区分组策略模块中存在两种不同的分区分组策略,每种模型根据不同的分区调度策略下是否允许任意分区周期组合而选择对应的分组策略。
[0125] 调度算法模块主要是根据所选择的模型的不同,使用合适的优化算法计算各类组合方式中模型的待优化参数。具体而言,对于图1中的第一类组合方式中的模型,算法的优化目标为最大化分区主时间框架以实现在满足可调度的前提下最少的分区切换。具体的优化算法为先计算出目标值的上界和每个分区区间长度在目标值中所占比率的下界,再对二者采用两层嵌套的二分法实现在系统可调度的前提下所有分区周期的优化。对于图1中的第二类组合方式中的模型,该模型下具有两组独立的未知参数,分别为分区的初始到达时间和分区的周期。由于允许任意分区周期组合以及与进程相关的时间在整个时间轴上连续,因此,同时优化两组未知参数难度很大。本发明中规定当前考虑分区的初始到达时间等于处理器上最早空闲时间,这样可以通过逐个迭代的方式,用所有分区的时间片长度计算出每个分区的初始到达时间。因此,确定所有分区和进程在该类模型下的运行情况只有每个分区的时间片长度一个参数。这里对其采用随机算法寻找满足系统可调度性的调度方案。对于图1中的第三类组合方式的模型,此时由于进程时间在不同的分区之间以及同一分区的不同次执行之间不连续,因此,分区与进程在执行过程中的相互影响程度与第一类、第二类组合方式的模型相比大大降低。在本发明中,对分区和进程分别进行优化,对分区其优化目标为在满足系统可调度的前提下,实现最少的分区中断以及最小的所有分区总执行时间与等待之间之和。优化算法为采用改进边界条件的粒子群优化算法。当进程调度策略采取PTS时,对进程的优先级和阈值则采取两级禁忌优化算法。
[0126] 可调度性分析及适应度值计算模块的主要功能是实现在任意一组候选参数下,判断当前系统的可调度性并在可调度的前提下计算出当前所选择优化目标的适应度值。该模块采用模拟实时内核运行的方式计算在所有分区和进程在任意一组候选解下任意时刻的运行情况,并输出所有分区和进程在T(其意义为所有分区和进程执行状态完全重复的周期)内的所有执行时间区间。根据分区的周期约束以及进程的截止时间约束可以判断系统在当前候选解下的可调度性以及对应的适应度值。调度算法模块和可调度性分析及适应度值计算模块的结合可以实现在所选模型和所输入的分区及进程参数下找到一组近优解。
[0127] 分区及进程执行区间计算模块的主要功能是对可调度性分析及适应度值计算模块中优化后的参数结合所有输入参数计算所有分区及进程在T内的执行区间。该模块核心算法整体与可调度性分析及适应度值计算模块类似,但当图1中选择的模型为第三类组合方式的模型时,此时计算出的进程的执行区间仅为所属分区的一次完整执行中的执行时间片且是在该分区的初始到达时间为0的前提下,因此,需要根据每个处理器内所有分区的执行情况,对计算出的所有进程的执行区间进行相应处理。
[0128] 调度甘特图模块则是根据分区及进程执行区间计算模块中输出的所有分区和进程的执行时间区间以及处理器个数同时实现各处理器上运行的分区和进程的调度甘特图。对于图1中的第一类组合方式和第二类组合方式,为满足任意处理器、分区及进程参数,各处理器分别按照本处理器内分区的主时间框架的长度进行动态刷新显示,此处刷新率可由用户自主设定。对图1中的第三类组合方式,由于各处理器上的执行情况以本处理器内驻留的所有分区的主时间框架长度为周期进行重复,因此该类模型的甘特图分别按照各处理器的主时间框架长度进行静态显示。
[0129] 下面本发明分别以一个具体的实例来详细说明本发明原型平台对图1中第一类和第三类组合方式的仿真过程。
[0130] 对于图1中第一类组合方式,选择进程的调度策略为EDF,输入所有的基本参数如表4所示。其中T表示进程的周期,D表示进程的截止时间,E表示进程的最坏执行时间。
[0131] 表4第一类组合方式模型输入参数示例
[0132]
[0133] 分区分组策略模块中计算过程如下:
[0134] 1)根据进程周期、进程的最坏执行时间及所属分区周期的关系计算每个分区在主时间框架(这里由于所有分区的周期都相同,故分区主时间框架的长度等于分区的周期)中的最小占比,可得α1~α4分别为31.67%,15%,15%,23.33%。
[0135] 2)依据该类组合方式下各处理器上分区的最小占比均衡的分区分组思想,将四个分区分成两组,算法运行结果为P1和P2一组,P3和P4为一组。
[0136] 调度算法模块以及可调度性分析及适应度值计算模块中计算过程如下:
[0137] 对两个处理器上的两组分区分别进行下述步骤,以第一组分区为例:
[0138] 1)根据满足可调度的前提下实现最少的分区切换的思想在优化算法中以分区的周期最大的优化目标;
[0139] 2)以所有分区中所有进程的最大周期60为优化目标的上界,以分区分组策略模块中计算出的α1和α2分别为P1和P2分区区间长度在目标值中所占比率的下界;
[0140] 3)以步骤2)中参数为初始解,首先对分区周期进行折半为30,计算该处理器上两个分区以及其内部所有进程的可调度性,结果不可调度且首先引起不可调度的是分区1,将分区中剩余的空闲比率(初始值为1-α1-α2)全分配给分区1,再次判断可调度性,此时结果为可调度,这时取分区周期为(30+60)/2=45,将分区P1和P2在一个周期中所占比率重置为步骤2)中所计算出的下界,计算系统可调度性,结果不可调度且首先引起不可调度的是分区1,将剩余的空闲比率(初始值为1-α1-α2)全分配给分区P1,此时系统仍不可调度,但是此时不可调度的为分区P2,此时将仅将剩余空间比率的一半分配给分区P1(此时分区P1和分区P2的分区时间片长度在整个周期中所占的比率分别为α1+(1-α1-α2)/2和α2),再次判断分区可调度性,……,直到所有分区均可调度且分区周期的变化量小于阈值(如10-3)则迭代终止,输出满足可调度条件的分区周期最大值以及对应的各分区长度占比。在该示例中,最终输出的分区周期为38.9978,分区P1和分区P2的分区时间片长度在一个周期中占比分别为
69.232%,30.768%。
[0141] 对于另一组分区P3和分区P4的最终输出的分区周期为29.9982,分区P3和分区P4的分区时间片长度在一个周期中占比分别为56.666%,43.334%。
[0142] 分区及进程执行区间计算模块中则根据上述输出的两个处理器中的分区周期参数以及每个分区时间片长度在各自周期中的占比参数计算每个分区的时间片长度、每个分区的初始到达时间,结合所有的进程参数以及所有的分区及进程的执行规则计算出每个分区及进程在时间轴上的执行时间区间。调度甘特图模块则对上述计算出的所有的分区及进程的执行时间区间调用画图函数画出系统的调度甘特图。
[0143] 对于图1中第三类组合方式,选择进程的调度策略为PTS,所有的基本参数如表5所示。其中T表示进程的周期,D表示进程的截止时间,E表示进程的最坏执行时间,Num表示进程在所属分区的一次完整执行中的执行次数,K表示进程的关键属性。
[0144] 表5第三类组合方式输入参数示例
[0145]
[0146]
[0147] 分区分组策略模块、调度算法模块以及可调度性分析及适应度值计算模块中的计算过程如下:
[0148] 1)由于该第三类组合方式中,同一分区的不同次执行间的进程时间互不相关,因此,可首先对每个分区中的进程参数进行优化。由于进程采用了PTS调度策略,因此,这里使用两级禁忌优化算法分别优化每个分区中所有进程的优先级和阈值分配,并以每个分区中所有进程的最后一次执行的截止时间作为该分区的时间片长度,在本示例中五个分区的时间片长度分别为25,35,29,42,30。
[0149] 2)计算每个分区时间片长度与每个分区周期的比值可得α1~α5分别为0.3225,0.35,0.29,0.28,0.1875。
[0150] 3)根据每个处理器上步骤2)中计算出的比值之和尽量均衡以及具有倍数关系的周期尽量在一个处理器上的思想运行分组算法将五个分区分成两组。分组结果为:第一组为分区P1、分区P4和分区P5,第二个组为分区P2和分区P3。
[0151] 4)对每个处理器上的分区,调用粒子群优化算法,优化每个分区在各自处理器上的初始到达时间。优化之后所有分区的初始到达时间的输出结果:第一个处理器上分区P1、分区P4和分区P5的初始到达时间分别为0,43,80;第二个处理器上分区P2和分区P3的初始到达时间分别为0和70。
[0152] 分区及进程执行区间计算模块按照该类模型的执行规则实现与第一类组合方式示例中类似的功能,最终由甘特图模块输出每个处理器上所有分区及进程在各分区主时间框架中完整的执行甘特图,完成仿真。
相关专利内容
标题 发布/更新时间 阅读量
驻极体片 2020-05-11 431
驻极体医用绷带 2020-05-13 924
驻极体材料 2020-05-12 585
驻极体和可用于驻极体的化合物 2020-05-14 514
驻极体话筒 2020-05-12 306
驻极体创伤贴 2020-05-14 193
低频驻极体天线 2020-05-12 764
驻极体和可用于驻极体的化合物 2020-05-14 294
驻极体 2020-05-11 280
驻极体和驻极体滤材 2020-05-11 377
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈