当前位置: 首页 > 专利查询>长安大学专利>正文

一种基于异常任务函数轨迹的感知节点程序异常诊断方法技术

技术编号:19821437 阅读:18 留言:0更新日期:2018-12-19 14:34
本发明专利技术公开了一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法只对异常任务调用的未被内联的函数进行检测,统计这些函数的调用情况,对函数调用的日志记录进行了缩减,这样既能去除冗余信息对诊断的干扰,同时也实现了快速提取有用信息,提高了算法效率,减少了分析开销。

【技术实现步骤摘要】
一种基于异常任务函数轨迹的感知节点程序异常诊断方法
本专利技术涉及无线传感器网络
,特别涉及一种基于异常任务函数轨迹的感知节点程序异常诊断方法。
技术介绍
近年来,无线传感器网络的应用越来越广泛,使得其网络结构越来越复杂、功能越来越完善、自动化程度也越来越高,促进了智能交通系统的快速发展。然而,由于交通系统本身是一个信息量大,动态性强的复杂巨系统,使得无线传感器网络在应用中受到各种无法避免的因素影响且应用环境复杂恶劣,导致无线传感网络在运行过程中可能出现环境干扰、硬件失效和软件失效等问题。这些问题不仅会影响网络性能,同时也会导致节点出现不可预知的异常,造成严重损失甚至网络瘫痪。同时,无线传感器网络功能上的完备及网络结构越来越复杂对无线传感器网络故障诊断提出了更高的要求。传感器网络故障大致可以分为三类:应用故障、网络故障和节点故障[4]。应用故障可能的表现方式有感知数据缺失、检测延时较长和生命周期过短等;而链路失效、数据包丢失、网络拥塞、路由环路和网络断裂则属于网络故障范畴;节点故障包括重启、损毁、硬件故障、无响应、能量过早耗尽、传感器读数故障和错误软件行为。准确有效的故障诊断方法能够及时对各种异常状态做出诊断、预防和修复,提高传感器网络运行的可靠性、安全性和有效性,保障传感器网络的功能完备和长期有效运行。异常定义为一种与期望的正常行为不符的模式。因此,对于异常行为,一种最直接有效的检测方法是定义一个表示正常行为的范围或相关特征,则观测数据中不属于正常范围或不具备正常情况下的相关特征的数据便可以确定为异常数据。然而,无线传感器网络异常诊断的实现的困难之处并不是判断数据是否属于正常范围以及数据是否具备正常数据的相关特征,最为重要且难以实现的是确定正常范围和获得正常情况下的相关特征。异常诊断领域学者在确定正常行为模式方面需要克服诸多挑战,主要包括:(1)难以定义一个包含所有可能的正常行为的范围。(2)一些来自恶意攻击者的异常借助正常模式的表现形式而使得对其的识别变得困难。(3)信息技术及无线电技术等先进技术的发展使得无线传感器也逐渐被应用到新的领域,而现有的异常定义并不适合新的应用领域的异常检测。(4)不能用一个确定的异常定义去界定不同的应用领域中的异常。(5)难以获得准确、具有代表性的训练数据集和验证数据集。
技术实现思路
针对现有技术中存在的问题,本专利技术的目的在于,提供一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法能够获取感知节点中的源代码中的异常的代码块。为了实现上述目的,本专利技术采用如下技术方案:一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法用于获取感知节点中的源代码中的异常的代码块,包括以下步骤:步骤1,分别获取在异常执行情况下和正常执行情况下的所有异常任务的关联函数调用记录,分别记为异常任务关联函数调用记录和正常任务关联函数调用记录;步骤2,分别基于异常任务关联函数调用记录和正常任务关联函数调用记录,利用函数调用频数模型构建方法,构建每个异常任务对应的异常函数调用频数模型和正常函数调用频数模型;步骤3,对每个异常任务,提取该异常任务对应的正常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的正常函数调用频数向量;提取该异常任务对应的异常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的异常函数调用频数向量;步骤4,对每个异常任务对应的每个函数的正常函数调用频数向量和异常函数调用频数向量进行双样本T检验,输出该函数为异常函数还是正常函数。步骤5,求每个异常任务中的每个异常函数在正常执行情况下执行频数的均值,求每个异常任务中的每个异常函数在异常执行情况下执行频数的均值;若两个均值不相等,则查看源代码中该异常函数的多个相关函数的代码块,判断代码块中的控制流信息及数据流信息是否存在错误,若存在错误,则该相关函数的代码块出现异常,否则该相关函数的代码块不存在异常;即可得到源代码中存在异常的代码块。具体地,所述的步骤2中的函数调用频数模型构建方法,包括以下步骤:根据异常任务关联函数调用记录统计单个异常任务在单次执行过程中调用的每个函数的执行频数,构成该异常任务在该次执行过程中的单次函数调用频数向量,该单个异常任务在多次执行过程中得到的所有单次函数调用频数向量构成该异常任务关联函数调用记录;根据正常任务关联函数调用记录统计单个异常任务在单次执行过程中调用的每个函数的执行频数,构成该异常任务在该次执行过程中的单次函数调用频数向量,该单个异常任务在多次执行过程中得到的所有单次函数调用频数向量构成该正常任务关联函数调用记录。与现有技术相比,本专利技术具有以下技术效果:本专利技术只对应用程序中异常任务调用的未被内联的函数进行检测,统计这些函数的调用情况,对函数调用的日志记录进行了缩减,这样既能去除冗余信息对诊断的干扰,同时也实现了快速提取有用信息,提高了算法效率,减少了分析开销。通过对任务建立正常执行与异常执行时的函数调用模型,对两种情形的两种模型中的每个函数计数器对应的调用序列进行假设检验,确定异常执行的函数。同时进一步分析异常函数的异常执行特征,如调用变化情况、每任务的平均执行次数及调用次数的方差,以诊断报告的形式展现给用户,为用户提供尽量相近的有用信息。下面结合附图和具体实施方式对本专利技术的方案作进一步详细地解释和说明。附图说明图1为实施例中的网络拓扑图。具体实施方式本专利技术提供一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法用于获取感知节点中的源代码中的异常的代码块,源代码在感知节点中运行,多个任务在源节点中运行,出现异常的任务记为异常任务。包括以下步骤:步骤1,分别获取在异常执行情况下和正常执行情况下的所有异常任务的关联函数调用记录,分别记为异常任务关联函数调用记录和正常任务关联函数调用记录。所有异常任务的关联函数调用记录即为异常任务函数轨迹。步骤2,分别基于异常任务关联函数调用记录和正常任务关联函数调用记录,利用函数调用频数模型构建方法,构建每个异常任务对应的异常函数调用频数模型和正常函数调用频数模型。步骤3,对每个异常任务,提取该异常任务对应的正常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的正常函数调用频数向量;提取该异常任务对应的异常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的异常函数调用频数向量;步骤4,对每个异常任务对应的每个函数的正常函数调用频数向量和异常函数调用频数向量进行双样本T检验,输出该函数为异常函数还是正常函数。步骤5,求每个异常任务中的每个异常函数在正常执行情况下执行频数的均值,求每个异常任务中的每个异常函数在异常执行情况下执行频数的均值;若两个均值不相等,则查看源代码中该异常函数的多个相关函数的代码块,判断代码块中的控制流信息及数据流信息是否存在错误,若存在错误,则该相关函数的代码块出现异常,否则该相关函数的代码块不存在异常;即可得到源代码中存在异常的代码块。具体地,步骤2中的函数调用频数模型构建方法,包括以下步骤:根据异常任务关联函数调用记本文档来自技高网
...

【技术保护点】
1.一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法用于获取感知节点中的源代码中的异常的代码块,其特征在于,包括以下步骤:步骤1,分别获取在异常执行情况下和正常执行情况下的所有异常任务的关联函数调用记录,分别记为异常任务关联函数调用记录和正常任务关联函数调用记录;步骤2,分别基于异常任务关联函数调用记录和正常任务关联函数调用记录,利用函数调用频数模型构建方法,构建每个异常任务对应的异常函数调用频数模型和正常函数调用频数模型;步骤3,对每个异常任务,提取该异常任务对应的正常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的正常函数调用频数向量;提取该异常任务对应的异常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的异常函数调用频数向量;步骤4,对每个异常任务对应的每个函数的正常函数调用频数向量和异常函数调用频数向量进行双样本T检验,输出该函数为异常函数还是正常函数。步骤5,求每个异常任务中的每个异常函数在正常执行情况下执行频数的均值,求每个异常任务中的每个异常函数在异常执行情况下执行频数的均值;若两个均值不相等,则查看源代码中该异常函数的多个相关函数的代码块,判断代码块中的控制流信息及数据流信息是否存在错误,若存在错误,则该相关函数的代码块出现异常,否则该相关函数的代码块不存在异常;即可得到源代码中存在异常的代码块。...

【技术特征摘要】
1.一种基于异常任务函数轨迹的感知节点程序异常诊断方法,该方法用于获取感知节点中的源代码中的异常的代码块,其特征在于,包括以下步骤:步骤1,分别获取在异常执行情况下和正常执行情况下的所有异常任务的关联函数调用记录,分别记为异常任务关联函数调用记录和正常任务关联函数调用记录;步骤2,分别基于异常任务关联函数调用记录和正常任务关联函数调用记录,利用函数调用频数模型构建方法,构建每个异常任务对应的异常函数调用频数模型和正常函数调用频数模型;步骤3,对每个异常任务,提取该异常任务对应的正常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的正常函数调用频数向量;提取该异常任务对应的异常函数调用频数模型中的每个函数在每次执行过程中的执行频数,多次执行过程中的所有执行频数形成该函数对应的异常函数调用频数向量;步骤4,对每个异常任务对应的每个函数的正常函数调用频数向量和异常函数调用频数向量进行双样本T检验,输出该函数为异常函数还是正常函数。步骤5,求每个异常任务中的每个异常函...

【专利技术属性】
技术研发人员:马峻岩王瑾张颖李易张特
申请(专利权)人:长安大学
类型:发明
国别省市:陕西,61

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

1