1.一种基于卫星信道的消息优先级动态调整方法,其特征在于包括下述步骤:
【步骤1】在当前时刻t,卫星信道流控δt结束,发送开启;高、中、低优先级队列中存储的消息数目分别记为nh、nm、nl,当nh+nm+nl等于0时,队列为空,不执行操作;当nh+nm+nl大于0时,执行【步骤2】;
【步骤2】参数提取;
提取非空队列中各消息到达时间ta,高优先级第k个消息到达时间记为tahk,中优先级第k个消息到达时间记为tamk,低优先级第k个消息到达时间记为talk;根据高、中、低优先级消息类型分别确定消息生命周期;消息生命周特指消息自到达发送系统到卫星信道发出的最大允许时延t,高、中、低优先级生命周期分别记为th、tm、tl;超时代价q是消息因超时而造成的影响参数,高、中、低优先级超时代价分别记为qh、qm、ql,q与用户能接受的超时消息的数目负相关;根据本系统业务消息特征与要求,qh:qm:ql推荐设置为9:3:1,即丢失1条高优先级消息损失等价于丢失3条中优先级消息或9条低优先级消息;当队列消息等待时间tw未超出其生命周期时,q置0;待以上参数均提取完毕后,进入【步骤3】;
【步骤3】生命周期判定;
依高、中、低优先级的顺序,分别判断各队首消息等待时间,等待时间分别记为twh、twm、twl,计算方法为:
tw=t-ta(1)
分别判断高、中、低优先级非空消息队列队首消息是否超出生命周期,空消息队列不参与判定;若twh>th或twm>tm或twl>tl,则该队列队首消息生命周期耗尽,进入【步骤4】;若twh≤th且twm≤tm且twl≤tl,则该队列队首消息满足生命周期,进入【步骤5】;
【步骤4】执行队首消息删除操作;
队首消息删除操作是基于优先级队列的卫星通信系统固有操作,取出队首消息节点,将队首消息节点指向下一节点并修改队列长度n;销毁取出的队首消息节点,即丢弃无效消息;当nh+nm+nl等于0时,返回【步骤1】,当nh+nm+nl大于0时,重新进入【步骤3】;
【步骤5】随机产生m个不重复的发送顺序序列;
m的取值受系统运算能力及三种优先级消息队列长度影响,本发明m值取100,序列中元素为高、中、低三种优先级,序列中元素数目总和为nh+nm+nl,元素发送顺序排列的总和为ns,ns按照如下公式计算:
其中,
【步骤6】计算并比较出m个发送顺序序列中超时代价之和最小的序列;
序列中第i个元素超时代价wi计算方法为:若预计等待时间大于对应优先级生命周期,则wi等于对应优先级超时代价为q,计算公式如下:
wi=[(t+i*δt)-ta]>t?q:0(3)
求出m个序列中超时代价之和最小的序列,序列最小超时代价之和wmin,计算公式如下:
提取wmin对应序列首元素进入【步骤7】;
【步骤7】出队并执行发送;
【步骤8】输出的序列首元素为{高,中,低}中的一种,在当前时刻t,赋予当前输出的序列首元素所对应的优先级为最高优先级,并执行出队,通过卫星信道发送,完成本次发送任务。