公开/公告号CN104462664A
专利类型发明专利
公开/公告日2015-03-25
原文格式PDF
申请/专利权人 中国航空工业集团公司沈阳飞机设计研究所;
申请/专利号CN201410664512.8
申请日2014-11-19
分类号G06F17/50(20060101);
代理机构北京慕达星云知识产权代理事务所(特殊普通合伙);
代理人高原
地址 110035 辽宁省沈阳市皇姑区塔湾街40号
入库时间 2023-12-18 08:05:40
法律状态公告日
法律状态信息
法律状态
2019-02-12
授权
授权
2016-09-07
实质审查的生效 IPC(主分类):G06F17/50 申请日:20141119
实质审查的生效
2015-03-25
公开
公开
技术领域
本发明属于实时仿真领域,涉及一种分布式仿真系统的实时性监 控方法。
背景技术
目前在仿真领域,基于反射内存网的分布式实时仿真系统应用较 为广泛。这类系统一般由多个仿真节点构成。如何判断各仿真节点的 运行是否实时,目前还没有简单有效的监控方法。通常的方法是通过 记录在一定时间内(如二十分钟)各节点实际的运行拍数,通过分析 和比较各节点运行的拍数来判断各节点是否实时运行。这种统计方法 不能确定未能实时运行的节点在什么时刻发生了超时,也不能确定是 否有节点“超实时”(即运行过快)。因此,如何简单有效地监控分布 式仿真系统的实时性和同步性,一直是仿真领域较难解决的问题。
发明内容
本发明所要解决的技术问题是:提供一种基于反射内存网的分布 式仿真系统的实时性监控方法,实现对系统中各仿真节点运行实时性 和同步性的动态监控。
本发明采取的技术方案为:一种分布式仿真系统的实时性监控方 法,其特征为所述方法包括以下步骤:
1.1)在仿真系统中增加一个监控节点或利用原仿真系统中的一 个节点作为监控节点,并在反射内存网空闲空间中划出一块区域,用 于监控各个节点的状态,分配好各个节点的状态记录地址Ai、拍数 记录地址Bi及统一时钟节拍计数地址C;
1.2)定义节点运行状态标志;
1.3)对系统实时时钟节点作出如下处理:
在每个时钟节拍开始时,首先在反射内存网上时钟节拍地址C 上写入时钟节拍计数N,然后利用反射内存网的中断功能,立即向系 统全部节点发出时钟中断信号Clock_INT;
1.4)对需要监控的各个仿真节点作下述处理:
1.4.1)将各节点仿真程序设置成按反射内存网中断指令运行模 式,即检测到反射内存网的时钟中断信号Clock_INT后,调用节点程 序运行一拍;
1.4.2)在仿真程序运行一拍前,在反射内存网中指定的地址Ai 处写入Running标志,同时在Bi处写入当前运行的拍数Ni,然后利 用反射内存网提供的中断服务,立即向监控节点发出节点开始运行中 断信号INTi1;在一拍程序运行后,在Ai处写入Finished标志,然后 立即向监控节点发出节点运行结束中断信号INTi2;
1.5)监控节点程序设置成中断调用模式:在仿真系统运行时, 若反射内存网检测到时钟中断Clock_INT、节点运行开始中断ITNi1、 节点运行结束中断INTi2,则调用相应的中断服务程序,在时钟中断 服务程序中,从反射内存网地址C处读取统一时钟节拍计数N;在节 点运行开始中断服务程序中,从反射内存网地址Ai、Bi读取各节点 实际开始运行的拍数Ni和节点开始运行状态标志;在节点运行结束 中断服务程序中,从反射内存网地址Ai读取节点运行结束状态标志;
1.6)仿真节点实时行分析:
1.6.1)在系统运行过程中,连续监控Ni和N的状态,若:
Ni=N,表明该节点按时钟节拍指令在实时运行;
Ni<N,表明该节点未能按时钟节拍指令实时运行,且运行慢;
Ni>N,表明该节点未能按时钟节拍指令实时运行,且运行快;
1.6.2)若某节点运行状态标志为Running,表明该节点当前正在 运行,若状态标志为Finished,表明该节点上一拍已运行结束;
1.6.3)在系统运行过程中,若同一节点Ni与N在每个时钟节拍 内不完全相同,但Ni=N,Ni<N交替出现,表明该节点每个时钟节拍 内的工作负荷不同,尽管一段时间内累积运行的拍数可能相同,也属 于未能实时运行;通过判断节点的运行状态,可以分析出节点延时和 超时情况:
在连续的Ni=N后首个Ni<N出现时,表明在N-1拍时,节点 程序没有能在规定的时钟节拍内运行完毕,出现延迟;当在Ni<N之 后,首个Ni=N出现时,表明节点程序本应该在N-2和N-1两拍 内运行的程序实际上在一个时钟周期内已运行完毕,该节点在N-2 和N-1时刻出现超时。
本发明的有益效果是:本发明可以实现对系统中各仿真节点运行 实时性和同步性的动态监控。
附图说明
图1为本发明一种具体实施方式的某基于反射内存网的仿真系 统结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本发明一种分布式仿真系统的实时性监控方法,包括以下步骤:
1.1)在仿真系统中增加一个监控节点(或利用原仿真系统中的 一个节点作为监控节点),并在反射内存网空闲空间中划出一块区域, 用于监控各个节点的状态,分配好各个节点的状态记录地址Ai(i为 节点号,如1,2,3…)、拍数记录地址Bi及统一时钟节拍计数地址 C;
1.2)定义节点运行状态标志,如Running=1,Finished=2;
1.3)对系统实时时钟节点(即在系统运行时,发出统一实时运 行节拍指令的节点)作出如下处理:
在每个时钟节拍开始时,首先在反射内存网上时钟节拍地址C 上写入时钟节拍计数N,然后利用反射内存网的中断功能,立即向系 统全部节点发出时钟中断信号Clock_INT。
1.4)对需要监控的各个仿真节点作下述处理:
1.4.1)将各节点仿真程序设置成按反射内存网中断指令运行模 式,即检测到反射内存网的时钟中断信号Clock_INT后,调用节点程 序运行一拍;
1.4.2)在仿真程序运行一拍前,在反射内存网中指定的地址Ai 处写入Running标志,同时在Bi处写入当前运行的拍数Ni,然后利 用反射内存网提供的中断服务,立即向监控节点发出节点开始运行中 断信号INTi1;在一拍程序运行后,在Ai处写入Finished标志,然后 立即向监控节点发出节点运行结束中断信号INTi2。
1.5)监控节点程序设置成中断调用模式。在仿真系统运行时,, 若反射内存网检测到时钟中断Clock_INT、节点运行开始中断ITNi1、 节点运行结束中断INTi2,则调用相应的中断服务程序,在时钟中断 服务程序中,从反射内存网地址C处读取统一时钟节拍计数N;在节 点运行开始中断服务程序中,从反射内存网地址Ai、Bi读取各节点 实际开始运行的拍数Ni和节点开始运行状态标志;在节点运行结束 中断服务程序中,从反射内存网地址Ai读取节点运行结束状态标志。
1.6)仿真节点实时行分析:
1.6.1)在系统运行过程中,连续监控Ni和N的状态,若:
Ni=N,表明该节点按时钟节拍指令在实时运行;
Ni<N,表明该节点未能按时钟节拍指令实时运行,且运行慢;
Ni>N,表明该节点未能按时钟节拍指令实时运行,且运行快。
1.6.2)若某节点运行状态标志为Running,表明该节点当前正在 运行,若状态标志为Finished,表明该节点上一拍已运行结束。
1.6.3)在系统运行过程中,若同一节点Ni与N在每个时钟节拍 内不完全相同,但Ni=N,Ni<N交替出现,表明该节点每个时钟节拍 内的工作负荷不同,尽管一段时间内累积运行的拍数可能相同,也属 于未能实时运行。通过判断节点的运行状态,可以分析出节点延时和 超时情况:
在连续的Ni=N后首个Ni<N出现时,表明在N-1拍时,节点 程序没有能在规定的时钟节拍内运行完毕,出现延迟。当在Ni<N之 后,首个Ni=N出现时,表明节点程序本应该在N-2和N-1两拍 内运行的程序实际上在一个时钟周期内已运行完毕,该节点在N-2 和N-1时刻出现超时。
本发明在某飞行训练模拟器上实现,该模拟器采用 VMICPCI-5565反射内存网卡构建了一个环形射内存网,如图1所 示,共有13个仿真节点。其中MP节点安装了时钟卡,用于向系统 发出统一的时钟节拍信号;MON节点为监控节点,用于监控各节点 的运行状态;其它节点为模拟器各种功能仿真节点。具体操作步骤如 下:
1.1)在仿真系统中增加一个监控节点(或利用原仿真系统中的 一个节点作为监控节点),在本实例中,采用MON节点作为监控节 点。并在反射内存网空闲空间中划出一块区域,用于监控各个节点的 状态,分配好各个节点的状态记录地址Ai(i为节点号,如1,2,3…)、 拍数记录地址Bi及统一时钟节拍计数地址C;
表1 反射内存网监控地址分配
1.2)定义节点运行状态标志,Running=1,Finished=2;
1.3)对系统实时时钟节点(即在系统运行时,发出统一实时运 行节拍指令的节点,本实例中为MP节点)作出如下处理:
在每个时钟节拍开始时,首先在反射内存网上时钟节拍地址C 上写入时钟节拍计数N,然后利用反射内存网的中断功能,立即向系 统全部节点发出时钟中断信号Clock_INT。
1.4)对需要监控的各个仿真节点作下述处理:
1.4.1)将各节点仿真程序设置成按反射内存网中断指令运行模 式,即检测到反射内存网的时钟中断信号Clock_INT后,调用节点程 序运行一拍;
1.4.2)在仿真程序运行一拍前,在反射内存网中指定的地址Ai 处写入Running标志,同时在Bi处写入当前运行的拍数Ni,然后利 用反射内存网提供的中断功能,立即向监控节点发出节点开始运行中 断信号INTi1;在一拍程序运行后,在Ai处写入Finished标志,然后 立即向监控节点发出节点运行结束中断信号INTi2。
1.5)监控节点程序设置成中断调用模式。在仿真系统运行时, 若反射内存网检测到时钟中断Clock_INT、节点运行开始中断ITNi1、 节点运行结束中断INTi2,则调用相应的中断服务程序,在时钟中断 服务程序中,从反射内存网地址C处读取统一时钟节拍计数N;在节 点运行开始中断服务程序中,从反射内存网地址Ai、Bi读取各节点 实际开始运行的拍数Ni和节点开始运行状态标志;在节点运行结束 中断服务程序中,从反射内存网地址Ai读取节点运行结束状态标志。 这些数据需进行记录,在实时性分析时使用。
1.6)仿真节点实时行分析:
1.6.1)在系统运行过程中,连续监控Ni和N的状态,若:
Ni=N,表明该节点按时钟节拍指令在实时运行;
Ni<N,表明该节点未能按时钟节拍指令实时运行,且运行慢;
Ni>N,表明该节点未能按时钟节拍指令实时运行,且运行快。
1.6.2)若某节点运行状态标志为Running,表明该节点当前正在 运行,若状态标志为Finished,表明该节点上一拍已运行结束。
1.6.3)在系统运行过程中,若同一节点Ni与N在每个时钟节拍 内不完全相同,但Ni=N,Ni<N交替出现,表明该节点每个时钟节拍 内的工作负荷不同,尽管一段时间内累积运行的拍数可能相同,也属 于未能实时运行。通过判断节点的运行状态,可以分析出节点延时和 超时情况:
在连续的Ni=N后首个Ni<N出现时,表明在N-1拍时,节点 程序没有能在规定的时钟节拍内运行完毕,出现延迟。当在Ni<N之 后,首个Ni=N出现时,表明节点程序本应该在N-2和N-1两拍 内运行的程序实际上在一个时钟周期内已运行完毕,该节点在N-2 和N-1时刻出现超时。
举例分析,如表2所示。
表2 根据MON节点记录的数据进行实时性分析
注:①在第1023拍,FLY节点的任务没有在规定的时间内完成,导 致节点运行超时;
②在第1027拍,FLY节点追回了滞后的一拍,但实际上系统是不 实时的,它将第滞后的1025拍和1026拍两拍任务在一拍内完成了;
③AUD节点,在第1024、1026拍连续出现超时。
机译: 分布式仿真系统,仿真器识别方法和分布式仿真系统管理装置
机译: 大型分布式系统中一种有效的聚集和监控方法
机译: 分布式仿真系统及分布式仿真方法