基于ISE算法的内场通信抗干扰试验任务调度研究

2020-12-25 06:08于爱荣牛彦杰王远阳
计算机技术与发展 2020年12期
关键词:任务调度指令权重

于爱荣,王 俊,牛彦杰,王远阳

(1.中国人民解放军陆军工程大学 指挥控制工程学院,江苏 南京 211117;2.南京信息工程大学 管理工程学院,江苏 南京 210044;3.东部战区总医院博士后科研工作站,江苏 南京 210002)

0 引 言

通信抗干扰技术是指在复杂电磁环境或有针对性的通信干扰环境中,为保持自身通信生存能力而采取的通信反对抗技术体系、方法和措施[1]。为了降低通信装备研制的投资风险和战场使用风险,需要对通信装备或系统的真实抗干扰能力进行客观、全面的评估。

内场通信抗干扰试验是指在具有良好电磁屏蔽的试验室内模拟外界实际电磁环境,考核通信装备抗干扰性能的一种试验方式。相对于外场通信抗干扰试验,内场通信抗干扰试验具有不受天气和地理条件约束、模拟电磁信号全程可控、安全保密性高、人员工作强度低、试验效费比高、试验仿真规模大、数据反馈与结果处理实时性强等诸多优点,受到各国军方和科工部门的重视,试验场建设的重点也逐步由外场转向内场。近年,随着通信抗干扰试验规模的日益增大,试验中涉及的设备种类和型号繁多,以往的试验系统大都针对单台或单类网络设备,可扩充性、灵活性、通用性差,难以适应目前中大规模组网试验的需求[2]。

1 系统总体设计

内场通信抗干扰试验作为一种综合利用数字信号处理、设备控制、场景仿真和大数据分析与计算机应用技术的半实物仿真试验平台,可对复杂电磁环境下的被试装备通信能力(误码率、丢帧率、主客观话音清晰度、主客观句子可懂度)和同步能力等动态指标进行量化考核,通过多次试验结果的积累可对通信装备的战技术性能有比较全面的评估[3-4]。

1.1 试验流程设计

内场通信抗干扰试验流程如图1所示,主要划分为试验规划、试验任务内容编排、试验任务调度、试验测试与控制和数据分析与评估五个阶段。

图1 内场通信抗干扰试验系统试验流程

其中试验规划阶段用于解析上级下发的试验任务,并将本次试验任务的要求和内容进行明确。试验规划阶段主要通过网络拓扑图形式展示待试验的网络结构,该阶段完成后将能够生成本次试验的总体设计规划和方案,载体形式为文档;试验任务编排完成对每一项任务中的测试对象、参试和陪试设备/仪表的细粒度时序和指令的规划和有机组合;试验任务调度阶段对多个试验任务按照权重优先级,使用ISE算法进行统一的调度;试验测试与控制阶段采用指令序列化方式实现对设备的流程化自动控制,涵盖测试的启动、参数配置、结果获取、异常处理和终止等;数据分析与评估阶段完成对内场测试过程中采集的结果、过程等数据进行存储,实现对试验结果、中间状态、设备参数等各类数据的高效管理和对存储的试验结果进行查询、对比和统计的功能[4-6]。

1.2 技术架构设计

系统采用分层架构进行设计实现,系统从下至上分别为数据管理层、指令控制层、业务逻辑层和展现与分析层,在借鉴前后端分离设计理念的基础上,综合使用Vue、Restful和Redis等开发技术,将系统设计的着力点聚焦于架构的高可用[7-9],技术架构如图2所示。

(1)展现与分析层:采用Vue.js这种渐进式框架构建试验管理与用户交互的界面。

(2)业务逻辑层:采用基于Restful架构将定义好的接口与不同的服务联系起来。其中任务权重模型构建和ISE算法调度是系统业务处理的核心模块。

(3)指令控制层:采用集中控制的总线结构,实现指令的集中控制。

(4)数据管理层:在使用MySQL的基础上结合Redis内存数据库高效能特性,为设备的高速数据传输提供数据支持,实现各类参数、过程、结果数据的存储和管理[10-11]。

图2 内场通信抗干扰试验系统技术架构

1.3 抗干扰内场试验任务调度的概念

在文中的通信抗干扰试验系统中,任务调度定位与在有限的资源保障条件(有限人员、装备和时间等)下,如何最大效率地统筹内场环境中的试验任务执行,保障试验过程中的各项试验任务、计划和方案能够更加准确、高效、快速的执行,从而满足试验规划和试验组织实施人员对试验任务运行的要求。除此之外,如何有效地分解、编排和组合各类试验任务,如何高效调度试验任务中可用的各类设备、仪表、人员、场地等资源,以及如何正确完成试验方案要求与执行时序广义上来说都是属于调度的研究范畴。

任务不仅是抗干扰内场试验调度的核心内容,也是资源分配的关键单位。它包含有试验任务所需的各类需求信息。一般来说,一个试验任务至少包含一个试验方案,一个试验方案中至少包含试验场景和试验指标。其中,试验场景信息主要定义了试验过程中被试设备与参试设备的网络环境和连接关系,试验指标则包含本次需要试验得出的考核内容,如:丢帧率、通信效率、误码率等。其中试验场景和试验指标可以被多个试验任务所共享[12]。

1.4 抗干扰内场试验任务调度的意义

(1)有效提升内场试验自动化执行效率。通过将调度技术引入抗干扰内场试验,参加试验的人员可采用预先加载的方式,将多个试验任务有序安排至等待队列中。随后,在综合考虑试验资源条件和任务权重的基础上,分析计算并决定是否将该任务调度执行。某试验任务只要满足调度运行的条件,系统将会使其运行起来,无需手工干预,有效提高了试验执行的自动化效率。此外,在引入任务自动化调度机制的背景下,系统也为后期的远程、分布式网络环境下的并行试验垫定了一定的技术基础。后期,在试验环境和资源保障到位的基础上,系统可在同一时间段内,并行开展多个试验任务,满足大型内场试验的运行时效的需求。

(2)试验资源的自动分配与部署,采用流程化的自动编排方式对任务调度中的试验资源进行合理分配,提高试验资源分配的效率和精准度。在试验资源分配时,优先对自身关联资源少而又满足任务所需的试验资源进行分配,这样可以尽量保证资源需求特殊的测试任务得到运行。

(3)满足用户对任务运行序列的合理化需求。在任务的调度与分配过程中,通过对试验任务的权重计算,排定各试验任务的运行优先级,实现了将用户关注度高和性质重要的试验任务尽早执行[13]。

1.5 任务调度的对象

内场试验任务调度的对象主要是试验中的各类设备、仪表。这些对象主要有以下几类:

(1)混合网络。试验系统的组网核心设备,用于模拟实际的外场试验环境及其电波传输衰减特性。

(2)干扰信号发生器。用于模拟敌方通信设备产生的干扰信号。可实现对通信设备在定频和调频状态下的信号干扰。在定频状态下的干扰样式主要包括宽带AM、ASK、FSK、BPSK、QPSK、梳状谱等;跳频状态下主要通过对接收到的信号进行频率快速检测,从而引导信号源快速产生与接收信号同频的干扰。

(3)背景信号发生器。用于产生在实际地理环境条件,对短波/超短波通信有潜在威胁的多样式、大强度、高密度、随机变化的动态“复杂”电磁环境,该设备生成的背景信号数量、功率、带宽及调制样式均可程控可变[14]。

(4)测试终端。用于加载数据或语音业务,通过手持式终端的形态可实现单词、句子、数据帧等多类业务的加载。

(5)其他设备。包括误码仪、功率计、频谱仪等设备,主要对测试过程中的信号强度、发射功率、接收功率、误码率等指标进行测量[15]。

2 基于ISE算法的试验调度设计

2.1 任务调度框架设计

在试验任务的规划和执行过程中,设备的利用率和数据处理效率变得越来越重要。针对当前试验任务调度机制和算法存在的调度任务不区分紧迫度、受控设备忙闲不均等问题,该文采用构建在任务权重模型技术上的一体化调度执行算法(integrated scheduling execution,ISE)来进行试验任务的综合调度[16],具体任务框架如图3所示。

图3 任务调度框架设计

该框架分为任务调度控制、指令总线、单设备控制和参试设备执行4个阶段。其中,任务调度控制负责任务权重的计算和ISE算法的调度执行,由于试验业务的实时性要求不高,采取时间片为每半小时一次的定期获取试验任务的策略,定时读取系统中的试验任务,并按序开展调度运行[17]。

2.2 任务权重模型的设计

在内场试验过程中,不同试验任务的方案种类、性质、参与设备和试验所需时间差异很大,因此需要在任务调度初期首先对试验任务进行调度优先级的确定和划分。因此,在充分分析研究任务特征的基础上,该文设计了任务的权重模型来对试验任务的紧迫程度进行量化表达。通过数学模型的描述方式对试验任务进行权重表达和划分,模型中的三个主体对象分别是试验方案、试验设备和试验人员,其中,试验方案、设备和人员之间均是一对多的连接关系。在模型中,用Wr表示实体和关系表之间的关系权重,用Wd表示实体和维度之间的关系权重,用We表示实体与实体之间的关系权重[18]。具体如图4所示。

图4 任务的权重模型

根据上述任务权重模型,相关试验任务Wt的权重形式化表示为:

其中,n1为Wr个数,n2为Wd个数,n3为We个数。

其中试验方案的维度主要包括:方案的类型(单网、多网、网系)、方案级别(国家级、部级、地区级、单位级)、方案性质(独立方案、延续方案、分支方案)等;试验设备的维度按照不同数据、控制接口、执行所需时间进行表述;人员的维度按照专业和技术等级进行表述。对于关系权值的设定,初始设定值为1,步进最小单位为0.5,在不同试验任务场景时对关系权值进行适当的调整,依据任务特征进行赋予权重数值后,需要对试验任务进行排序,以达到任务序列中依据权重排序的最优值,采用归并排序算法进行排序,其时间复杂度为Ο(nlog2n)。归并排序的主要思想是分治法,主要过程是:

(1)将任务队列中的n个试验任务分成两部分。

(2)将步骤1分成的两部分再分别进行递归分解,直到所有部分的任务个数都为1。

(3)按照权重从最底层开始逐步合并两个排好序的数列。

2.3 ISE算法的实现

在任务调度执行阶段,先前的系统试验任务调度采用的是短作业优先或先来先服务等算法;但是对于预计需要时间差异较大的试验任务来说,这两种算法都存在调度效率低下、设备空闲率高的问题。在对多种优先级调度算法充分研究的基础上,该文采用高响应比优先(highest response ratio next,HRRN)算法[19]。该算法的核心思想是综合考虑每个任务的等待时间长短和估计需要的执行时间长短,确保每个试验任务都能够获得公平的调度与执行。假设试验任务i的优先级为Pi,到达时间为Oi,开始运行时间为Si,执行结束时间为Ei,则有:

由上式可以看出:Pi一定是大于1的,当排队等待时间固定时,如任务需要执行的时间越小,执行的优先级别就越高,类似SJF调度算法;当任务所需执行时间固定时,任务排队等待的时间越长,其被调度的优先级也会增高,类似FCFS算法;在充分考虑任务权重的基础上使用该算法能够有效地动态调整试验任务的优先级,使得整个调度过程更加均衡,达到任务所需执行时间和排序等待时间的两点平衡。

2.4 试验任务的形式化表述

对于该文研究的内场抗干扰试验系统,涉及到的主要试验实体包括试验任务、试验方案、试验设备和时序流程,这些实体特征各异,属性差别很大。并且随着试验需求、规划和内容编排的频繁变更,这些实体的属性也可能需要随之改变,这就要求试验中的这些个体数据组织形式必须便于理解、扩展和修改。

XML(extensible markup language)作为一种可扩展标记语言可用于表述事务的相关特征[20]。由于它是一种基于层次化标签的描述语言,可以以文本形式组织和描述实体关系与属性。XML中的标记通常成对出现,包括开始标记和结束标记,位于标记之间内容称为元素。一个元素可包含一个或多个属性,目前,XML已成为网络应用程序中定义属性和特征的事实标准。对试验任务进行定义的典型设计如下:

其中,MissionName字段表示该试验任务的名字;MissionPriority表示该试验任务的优先级,该优先级由任务权重模型进行计算得出;MissionPeopleName字段表示该试验任务试验人员;MissionPlan字段表示试验拓扑和网络脚本的文件存储名称,以相对路径表示;Missiontype字段表示试验的具体考核项目;UseDevice字段表示该试验任务的各类设备情况,包括被试设备(以M标识)、参试设备(以P标识)。如果该试验任务还需要其他信息,通过定义新的字段,就可在相关位置直接添加标签[21]。

2.5 试验任务的程序调度

任务调度模块的核心就是从多个试验任务中调度出一个优先级最高的试验任务进行优先运行,其伪代码示意如下:

获取测试任务队列中的所有测试任务;

setMissionNum 0;#初始化任务总数

while{未遍历试验队列} {

提取一个未判断的试验任务;

获取该试验任务的属性和数据;

加载到任务队列中;

MissionNum++;

}

while{MissionNum>1} {

计算试验任务的权重优先级;

对所有试验任务进行排序;

选出优先级最高试验任务;

if{优先级最高的试验任务不唯一} {

{

对选出的任务按进入高响应比优先算法进行排序;

调度排序首位的试验任务;

MissionNum--;

开展试验任务设备分配和试验项目加载;

}else

{

调度排序首位的试验任务;

MissionNum--;

开展试验任务设备分配和试验项目加载;

}}

伪代码说明:试验任务调度功能的主要目的就是从多个试验任务中调度出可执行的下一个任务,并为其分配设备和各类资源。调度的目标就是使整个试验能在最短时间内高效、稳定和准确的执行,其调度策略的核心就是该文所提出的任务权重模型和IES算法。

2.6 编排指令的帧结构设计

试验任务执行过程中的核心是要对管控设备进行指令的序列化发送,主要涉及到的指令有:设备运控指令、参数配置指令、状态监控指令和结果获取指令,指令在系统软件设计和编码时都以信息帧的形式呈现。信息帧是指由各种信息项按一定的结构方式组合而成的数据结构。各信息项由包含它的信息帧的帧头内容和它出现在信息帧中的位置共同确定其物理含义,信息项使用指定的数据类型来表达。图5显示了一个典型的信息帧结构[22]。

图5 信息帧结构

信息帧实现了对管控设备指令的可视化设计,标准化的组织形式让指令的解析和理解更为简单,内场通信抗干扰试验系统基于Borland C++开发工具进行编码实现,对指令帧采用struct数据结构定义如下:

struct TFrame

{

char StartId[4]; ///帧起始标志

int ALength;//帧长度

char SBBM;//设备编码

char ZGNBM; //帧功能码

char ZT[800];//帧体

char CheckByte;//检验字

};

2.7 基于Socket的指令交互

由于在Socket中的send函数无法直接发送结构体,因此需要在发送端先将结构体序列化为二进制字符串,然后用send发送,在接收端recv字符串后再转换成原先的结构体。结构体对象在内存中分配的空间都是连续的,所以序列化后的发送和接收过程应不会出现数据错位的问题。不过为了保证数据的完整性和正确性,在数据帧中均加有校验字,以确保数据的一致性。具体的发送结构体的代码为:

TFrame sndFrame;

memcpy( sndFramer.StartId,“frme”, sizeof(“frme”) );

memcpy( sndFramer.SBBM,“0001”, sizeof(“0001”) );

memcpy( sndFramer.ZGNBM,“1000”, sizeof(“1000”) );

.......

send( m_socket, (char *)& sndFramer, sizeof(TFrame), 0 );

在接收方对于定长的结构体可采用定长字符数组的方式接收,处理的核心代码如下:

char buffer[1024];

TFrame recvFrame;

recv( m_socket, buffer, sizeof(buffer), 0 );

memcpy( & recvFrame, buffer, sizeof(buffer) );

3 结束语

当前,内场通信抗干扰试验的重要性正在逐渐凸显,随着通信网络的爆炸式增长,ISE算法在大规模组网通信试验中的效果评估还需要继续验证。另外,还应注意到跨网络、地域、体系的联合试验需求日益强烈,分布式试验的新模式正在逐渐成形,如何在新的试验场景下高效完成试验任务还需要加大力气探索和研究。

猜你喜欢
任务调度指令权重
基于生产函数的云计算QoS任务调度算法
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
基于动态能量感知的云计算任务调度模型
权重常思“浮名轻”
《单一形状固定循环指令G90车外圆仿真》教案设计
新机研制中总装装配指令策划研究
关于ARM+FPGA组建PLC高速指令控制器的研究
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹
基于HMS的任务资源分配问题的研究