一种基于有序优先级队列的源包调度方法与流程

文档序号:12865927阅读:292来源:国知局

本发明属于航天器数据管理技术领域,具体涉及一种基于有序优先级队列的源包调度方法。



背景技术:

航天器遥测是把航天器上各种被测信息,经过感受、采集和调制,通过天线传输媒介送到地面接收站,经过解调、记录和处理的测量全过程,是航天器整星数据管理系统的重要功能。不同航天器型号任务,往往对遥测参数设置、采集频率、存储方式和下传方式等需求不同。采用高级在轨系统aos遥测体系的航天器,一般会将同一类型的遥测组织成一个遥测源包下传。然而,同一航天器内部,对于不同类型的遥测参数,其下传频率也差异很大。例如,某遥感卫星,其指令接收情况遥测和部分控制参数遥测等快速变化遥测,一般要求包含此类的遥测源包1秒下传一次;而某些温度量等缓慢变化遥测,可能此类遥测源包几分钟下传一次。另外在某些情况下,地面人员可能在特定的情况下对某些遥测关注更高,要求这部分遥测下传速率能够实时调整。又因为遥测带宽是一个受限的资源,遥测下传速率设置不合理,或将导致数据堵塞,亦或导致遥测带宽得不到充分利用而产生浪费。



技术实现要素:

有鉴于此,为了满足遥测信道充分利用,不同源包差异速率下传,源包速率动态可调等需求,本发明的目的是提供一种基于有序优先级队列的源包调度算法,根据遥测码速率、各遥测源包自身周期进行源包下传调度,有效利用信道资源,降低复杂程度。

本发明的一种基于有序优先级队列的源包调度方法,包括如下步骤:

步骤1:在当前帧下传周期,对所有需要下传的源包的源包信道下传剩余计时remain_cnt减1,其中,如果remain_cnt已经为0则不减,如果下传剩余计时减1后为0,表示该源包信道下传到时;

步骤2:对每个源包信道重新计算下传优先级priority,计算公式为:

priority=remain_cnt×1000/period;

其中,period表示源包下传周期;

步骤3:对所有源包信道根据优先级priority进行重新排序:如果所有源包信道的源包平均长度与遥测帧长度的比值大于1/4,则排序算法采用冒泡排序法对源包信道优先级进行排序,否则采用快速排序法对源包信道优先级进行排序;

步骤4:在当前帧下传周期,按照以下步骤持续选择源包信道,并下传到对应链路中,直到下层链路填满或者没有符合条件的源包为止,具体为:

步骤4.1:依据重新排序后的优先级顺序,从高到低依次选择缓存源包个数大于零0的源包信道,将该源包信道的源包放入对应链路中,每成功选择一个源包信道,将该源包信道的下传剩余计时remain_cnt重置为下传周期,继续选择下一个优先级的源包信道,直到将源包个数大于零0的所有源包信号选择完毕;

步骤4.2:返回步骤1,进行下一帧下传周期的源包信道下传。

本发明具有如下有益效果:

1、对每个源包信道进行独立管理,每个源包可以设置下传周期等多个参数,而优先级根据当前下传周期等参数实时计算(见第3部分源包信道调度算法步骤2),因此可以实现不同源包通过差异速度下传,且源包下传速率动态可调;

2、每次帧下传时间片中,根据遥测帧实际剩余空间调度遥测源包,最大程度保证对遥测信道的有效利用;

3、优先级计算方法是根据当前等待的时间占全部等待周期的比例算出(见第3部分公式1),对遥测源包信道具有相对公平性。例如对于两个剩余计时相对的源包,等待周期长的源包将获得更高优先级。因此当遥测信道阻塞时,等待周期长的源包不会出现长期无法下传的情况;当遥测信道空闲时,各源包根据比例获得更多信道资源占用率。

4、本发明的步骤1、步骤2都只对源包信道队列进行一次遍历,算法时间复杂度为o(n),步骤4无需遍历,时间复杂度是一个常数,为o(1);步骤3算法时间复杂度分为两种,第一种是源包平均长度/遥测帧长度>1/4,此时采用冒泡排序,时间复杂度为o(4n);第二种是源包平均长度/遥测帧长度<1/4,此时采用快速排序,时间复杂度为o(nlogn),n为参与遥测下传的源包信道个数。因此,保证了本算法的高效性。

附图说明

图1为本发明的基于有序优先级队列的源包调度方法流程图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明对预先定义且周期性下传的遥测包进行调度,包括根据包周期进行调度下传、对包周期进行重新设置、停止源包下传等等。

源包信道是包下行控制的基本单元,每个源包信道有以下属性对其进行描述和操作:

本信道apid:不同的源包信道由apid唯一标识,并作为周期调整索引。

源包下传周期period:若为0xffff,则表示该源包信道为阻塞状态,不允许下传;

下传剩余计时remain_cnt:初值为下传周期,记录本源包信道距离下一次到时下传还剩多长时间,当计数为0,则表示当前源包信道等待时间已经达到下传周期要求。

源包信道缓存大小n:每个源包信道都有个缓存,该信道获得新的源包,则输入到该缓存中。若缓存已满,则将源包丢弃。

如图1所示,本发明的源包信道调度方法按照以下步骤进行:

步骤1:在当前帧下传周期,对所有需要下传源包的源包信道下传剩余计时remain_cnt减1(如果已经为0则不减),如果下传剩余计时减为0,表示该源包信道下传到时。

步骤2:对每个源包信道重新计算下传优先级priority,计算公式为:

priority=remain_cnt×1000/period;显然,优先级数值越小,说明下传优先级越高。

步骤3:对所有源包信道根据优先级进行重新排序:如果所有源包信道的源包平均长度与遥测帧长度的比值大于1/4,则排序算法采用冒泡排序法对源包信道优先级进行排序,否则采用快速排序法对源包信道优先级进行排序。

步骤4:在当前帧下传周期,按照以下步骤持续选择源包信道,并下传到对应链路中(例如,aosvc),直到将下层链路已经填满或者没有符合条件的源包为止,具体为:

步骤4.1:从源包信道顺序表中当前最高优先级游标开始,依据优先级顺序从高到低依次选择缓存源包个数大于零0的源包信道,将该源包信道的源包放入下行信道,每成功选择一个源包信道,将该源包信道的下传剩余计时remain_cnt重置为下传周期,并将当前最高优先级游标加1,使游标指向下一个优先级的源包信号,并继续选择下一个优先级的源包信道,直到将源包个数大于零0的所有源包信号选择完毕;

步骤4.2:返回步骤1,进行下一帧下传周期的源包信道下传。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。



技术特征:

技术总结
本发明公开了一种基于有序优先级队列的源包调度方法,对每个源包信道进行独立管理,每个源包可以设置下传周期等多个参数,而优先级根据当前下传周期等参数实时计算,因此可以实现不同源包通过差异速度下传,且源包下传速率动态可调;每次帧下传时间片中,根据遥测帧实际剩余空间调度遥测源包,最大程度保证对遥测信道的有效利用;优先级计算方法是根据当前等待的时间占全部等待周期的比例算出,对遥测源包信道具有相对公平性。例如对于两个剩余计时相对的源包,等待周期长的源包将获得更高优先级。因此当遥测信道阻塞时,等待周期长的源包不会出现长期无法下传的情况;当遥测信道空闲时,各源包根据比例获得更多信道资源占用率。

技术研发人员:张亚航;袁珺;王文平;李延;余晟;燕洪成;杨柳青;贾卫松;于俊慧;李小娟;张庆君;潘莉;苗蕾;王向晖
受保护的技术使用者:北京空间飞行器总体设计部
技术研发日:2017.05.25
技术公布日:2017.11.03
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1