一种VxWorks程序自动判别和运行方法技术

技术编号:27771930 阅读:143 留言:0更新日期:2021-03-23 12:51
本发明专利技术公开了一种VxWorks程序自动判别和运行方法,包括从机和主机,从机中运行着主程序和监控主程序运行状态的心跳包进程,主机进行心跳处理,并向心跳包进程发送查询命令,当得到正常反馈时不予处理,当得到资源不足反馈时,向从机发送减少主程序系统资源需求的操作命令,当得到程序崩溃的反馈时,向从机发送进程创建的操作指令,当主机对从机的心跳响应失败时,对从机进行重新连接。本发明专利技术通过心跳包进程对从机主程序进行监测,确保系统运行正常。

【技术实现步骤摘要】
一种VxWorks程序自动判别和运行方法
本专利技术涉及计算机操作系统领域,尤其涉及一种VxWorks程序自动判别和运行方法。
技术介绍
VxWorks操作系统是一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。VxWorks操作系统具有很高的实时性,在工程中具有广泛的应用,通常在一个系统中,会有多台计算机,多台计算机按照一定的主从机关系运行。在系统正常运行时,通常多个VxWorks程序会互相协同工作,如果某台计算机的VxWorks程序出故障,就会影响系统的性能和正常运行。因此,需要一种可靠的VxWorks程序自动判别和运行方法,当某个从机的VxWorks程序宕机后,系统中的主机能够重新运行该程序。公开号为CN101587455A的中国专利技术专利公开了一种用于vxWorks操作系统检查内存泄露的方法,通过编写系统补丁函数程序、为补丁注入及通信控制程序并通过内存泄露分析程序进行配对和查找地址以确定内存泄露及泄露的位置。同样解决了释放系统内存的问题,但是使用的是调用函数的方法,交互方式复杂。
技术实现思路
针对以上问题,本专利技术提供一种VxWorks程序自动判别和运行方法,旨在通过心跳包进程监控从机主程序运行状况,在从机主程序出现故障时重新运行程序,在网络断开时进行重连,以确保系统正常运行。一种VxWorks程序自动判别和运行方法,包括n台从机Ci和主机H,其中i=1、2……n,从机Ci中运行着VxWorks主程序Pi和监控Pi运行状态的心跳包进程Gi;<br>步骤一,主机H与所有从机建立连接并进行心跳处理,心跳包进程Gi每隔一段时间通过VxWorks系统监测函数监控Pi运行情况;步骤二,主机H向心跳包进程Gi发送查询命令,心跳包进程Gi将监控到的Pi信息:正常S0、资源不足S1或程序崩溃S2三种状态信息发送给主机H;步骤三,当主机H接收到的状态信息为S0时,不予处理;当主机H接收到的状态信息为S1时,向Ci发送减少Pi系统资源需求的操作命令;当主机H接收到的状态信息为S2时,向Ci发送进程创建的操作指令,重新运行进程Pi;当主机H对从机Ci的心跳响应失败时,对从机Ci进行重新连接。作为优选,步骤一中的心跳处理采用延迟心跳测试法测试网络稳定度。作为优选,延迟心跳测试法为:使用最小心跳值realMin连续测试三次,当得到成功响应时,使用curHeart进行一次心跳测试。作为优选,延迟心跳测试法为:使用最小心跳值realMin连续测试,当得不到成功响应时,重复使用最小心跳值realMin进行连续测试。作为优选,当curHeart进行一次心跳测试成功时,使用最优心跳二分查找法找到最优心跳值。作为优选,当curHeart进行一次心跳测试失败时,使用快速心跳法判断失败原因。作为优选,最优心跳二分查找法步骤为:S111,设定心跳区间[MinHeart,MaxHeart];S112,令当前测试心跳值curHeart为心跳区间的中间值,即curHeart=(MinHeart+MaxHeart)/2,并使用延迟心跳测试法测试当前心跳值curHeart;S113,当curHeart测试失败时,使用快速心跳法进行处理;当curHeart测试成功时,则令心跳区间的最小值MinHeart等于当前心跳,即MinHeart=curHeart=(MinHeart+MaxHeart)/2;S114,设置阀值T,并计算当前心跳与最小心跳的差值curHeart-MinHeart;S115当curHeart-MinHeart<T,此时curHeart即为最优心跳值successHeart;当curHeart-MinHeart≥T时,则重复步骤S112、S113、S114直至curHeart-MinHeart<T,此时curHeart即为最优心跳值successHeart;S116,使用successHeart维持心跳,若出现心跳失败,则令curHeart=successHeart再进行延迟心跳测试。作为优选,快速心跳法为采用心跳值不断减半的速率进行测试,步骤有:S121,令快速心跳值fastHeart=curHeart/2,并使用fastHeart间隔发送心跳进行测试;S122,当使用fastHeart心跳测试失败,且fastHeart大于最小阀值realMin时,重复步骤S121;S123,当使用fastHeart心跳测试出现一次成功,则令curHeart=fastHeart,使用curHeart按照最优心跳二分查找法找到最优心跳值;S124,当fastHeart小于阀值realMin且测试失败时,重置最大心跳值MaxHeart,使MaxHeart=curHeart=(MinHeart+MaxHeart)/2,重新建立连接,并使用最优心跳二分查找法找到最优心跳值。作为优选,步骤三中向Ci发送减少Pi系统资源需求的操作命令的方法为调整当前资源需求currR,令程序的最小资源需求量为minR,则调整当前资源需求currR=minR+(currR-minR)/2。有益效果:(1)本专利技术采用心跳包进程对主程序进行监控,并及时反馈状态信息给主机,使主机作出相应处理,确保了系统正常运行;(2)本专利技术的心跳包进程和主机只有查询和反馈的交互信息,尽可能减少了心跳消息的交互少,减少了通信开销;(3)本专利技术在心跳处理中先采用延迟心跳测试法进行网络稳定测试,避免了网络动荡而引起的误判;(4)本专利技术在心跳处理中采用最小心跳值进行测试,心跳值足够小,避免防火墙NAT超时导致连接中断,保证了通信的实时性;(5)本专利技术在心跳处理中采用延迟心跳测试法测试成功后,通过最优心跳二分查找法查找到的最优心跳,节约系统资源,提高检测速度;(6)本专利技术在心跳处理中采用延迟心跳测试法测试失败时,通过快速心跳法判断网络故障原因,降低了由于网络拥塞、网络中断等原因导致的心跳包偶然丢失从而引发的连接终止的可能性,提高了心跳包的可靠性;(7)本专利技术在心跳处理中采用快速心跳法,以心跳值不断减半的速率进行测试,使网络超时发现的时间尽可能短,从而增加协议对连接断开的响应速度;(8)本专利技术程序简单,系统规模大小可调整,适用于连接在网络上的有线和无线设备,适用性强。附图说明图1为本专利技术的一个实施例的系统初始化流程图;图2为本专利技术的一个实施例的系统工作流程图;图3为本专利技术的一个实施例的主机的工作流程图;图4为本专利技术的一个实施例的从机的工作流程图;图5为本专利技术的一个实施例的心跳处理的工作流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本本文档来自技高网...

【技术保护点】
1.一种VxWorks程序自动判别和运行方法,包括n台从机Ci和主机H,其中i=1、2……n,其特征在于:从机Ci中运行着VxWorks主程序Pi和监控Pi运行状态的心跳包进程Gi;/n步骤一,主机H与所有从机建立连接并进行心跳处理,心跳包进程Gi每隔一段时间通过VxWorks系统监测函数监控Pi运行情况;/n步骤二,主机H向心跳包进程Gi发送查询命令,心跳包进程Gi将监控到的Pi信息:正常S0、资源不足S1或程序崩溃S2三种状态信息发送给主机H;/n步骤三,当主机H接收到的状态信息为S0时,不予处理;/n当主机H接收到的状态信息为S1时,向Ci发送减少Pi系统资源需求的操作命令;/n当主机H接收到的状态信息为S2时,向Ci发送进程创建的操作指令,重新运行进程Pi;/n当主机H对从机Ci的心跳响应失败时,对从机Ci进行重新连接。/n

【技术特征摘要】
1.一种VxWorks程序自动判别和运行方法,包括n台从机Ci和主机H,其中i=1、2……n,其特征在于:从机Ci中运行着VxWorks主程序Pi和监控Pi运行状态的心跳包进程Gi;
步骤一,主机H与所有从机建立连接并进行心跳处理,心跳包进程Gi每隔一段时间通过VxWorks系统监测函数监控Pi运行情况;
步骤二,主机H向心跳包进程Gi发送查询命令,心跳包进程Gi将监控到的Pi信息:正常S0、资源不足S1或程序崩溃S2三种状态信息发送给主机H;
步骤三,当主机H接收到的状态信息为S0时,不予处理;
当主机H接收到的状态信息为S1时,向Ci发送减少Pi系统资源需求的操作命令;
当主机H接收到的状态信息为S2时,向Ci发送进程创建的操作指令,重新运行进程Pi;
当主机H对从机Ci的心跳响应失败时,对从机Ci进行重新连接。


2.根据权利要求1所述的一种VxWorks程序自动判别和运行方法,其特征在于:步骤一中的心跳处理采用延迟心跳测试法测试网络稳定度。


3.根据权利要求2所述的一种VxWorks程序自动判别和运行方法,其特征在于:所述延迟心跳测试法为:使用最小心跳值realMin连续测试三次,当得到成功响应时,使用curHeart进行一次心跳测试。


4.根据权利要求3所述的一种VxWorks程序自动判别和运行方法,其特征在于:所述延迟心跳测试法为:使用最小心跳值realMin连续测试,当得不到成功响应时,重复使用最小心跳值realMin进行连续测试。


5.根据权利要求3所述的一种VxWorks程序自动判别和运行方法,其特征在于:当所述curHeart进行一次心跳测试成功时,使用最优心跳二分查找法找到最优心跳值。


6.根据权利要求3所述的一种VxWorks程序自动判别和运行方法,其特征在于:当所述curHeart进行一次心跳测试失败时,使用快速心跳法判断失败原因。


7.根据权利要求3所述的一种VxWorks程序自动判别和运行方法,其特征在于:所述最优心跳二分查找法步骤为:
S111,设定心跳区间[MinHeart,MaxHeart];
S112,令当前测试心跳值curHeart为心跳区间的中间...

【专利技术属性】
技术研发人员:潘帅
申请(专利权)人:南京天朗防务科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1