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

基于Petri网的并发错误检测方法及系统技术方案

技术编号:24995577 阅读:20 留言:0更新日期:2020-07-24 17:58
一种基于Petri网的并发错误检测方法及系统,包括:使用Petri网对被检测系统进行静态分析获取静态分析数据,并根据静态分析数据构建检测系统模型;提取检测系统模型中的规则机制信息,根据规则机制信息生成状态图;提取状态图中的操作标记函数信息,根据操作标记函数信息获取并发错误判断信息,据以遍历判断状态图获取错误检测结果,本发明专利技术解决了现有技术存在的对并发错误的检测效率低和检测精度差的技术问题。

【技术实现步骤摘要】
基于Petri网的并发错误检测方法及系统
本专利技术涉及一种并发检错的方法,特别是涉及一种基于Petri网的并发错误检测方法及系统。
技术介绍
并发程序常常伴随着不易被检测的并发错误,像是死锁,数据竞争等。由于这些并发错误在绝大多数执行顺序下不会出现,只有在某些特定的执行顺序下才会触发这些并发错误,因此常常需要花费较大的开销才能捕捉这些错误。传统的并发错误检测大体上分为动态执行控制和静态源码分析。动态执行控制主要是监视程序运行,在监视过程中识别共享变量和进行锁集求交运算,该技术虽然可以在不用预先获取程序源码的基础上进行检测,但是执行过程中的开销较大,并且由于不清楚源码情况,一次执行暴露全部并发缺陷的概率较低,测试过程中需要大量的测试用例。而静态源码分析的方法在建立模型后,具有开销小、效率快等众多优点,只能很难保证语义和构建的模型完全等价。综上所述,现有技术中的动态执行控制和静态源码控制并发检错技术需要准备大量测试用例构建模型不等价,现有技术存在对并发错误的检测效率低和检测精度差的技术问题。
技术实现思路
鉴于以上现有技术存在对并发错误的检测效率低和检测精度差的技术问题,本专利技术的目的在于提供一种基于Petri网的并发错误检测方法及系统,解决现有技术存在的对并发错误的检测效率低和检测精度差的技术问题,一种基于Petri网的并发错误检测方法,包括:使用Petri网对被检测系统进行静态分析获取静态分析数据,并根据静态分析数据构建检测系统模型;提取检测系统模型中的规则机制信息,根据规则机制信息生成状态图;提取状态图中的操作标记函数信息,根据操作标记函数信息获取并发错误判断信息,据以遍历判断状态图获取错误检测结果。于本专利技术的一实施方式中,使用Petri网对被检测系统进行静态分析获取得静态分析数据,并根据静态分析数据构建检测系统模型,具体包括:将数目不小于两个的线程设计为独立系统,独立系统与线程对应;定义独立系统中的控制结构的操作锁定解锁函数;根据操作锁定解锁函数判断控制结构是否可运行,获取控制结构判断信息;根据控制结构判断信息制定操作逻辑;根据操作规则构建检测系统模型。于本专利技术的一实施方式中,根据控制结构判断信息制定操作逻辑,包括:预设读写逻辑为:满足读取数据d前,先进行对应数据d的写操作;预设同步原则满足读写冲突,写写冲突;汇总预设读写原则和预设同步原则为操作规则。于本专利技术的一实施方式中,提取检测系统模型中的规则机制信息,根据规则机制信息生成状态图,具体包括:获取检测系统模型中的各独立系统的控制结构及系统运行条件;根据控制结构上的状态变化获取各独立系统的状态变化集;获取控制结构上发生读写及加解锁操作时状态变化集的数据修改信息,根据数据修改信息获取状态图发生逻辑;根据系统运行条件和状态图发生逻辑生成状态图。于本专利技术的一实施方式中,获取控制结构上发生读写及加解锁操作时状态变化集的数据修改信息,根据数据修改信息获取状态图发生逻辑,具体包括:获取控制结构的数据修改信息,数据修改信息包括:写入删除操作及加解锁操作;判断当前操作类型;在控制结构上有写入/删除操作时,则经过该控制结构产生的状态Configuration数据集合进行修改;在控制结构上有写入/删除操作时,则经过该控制结构产生的状态Configuration谓词集合中涉及的这些数据的谓词真值进行修改;在控制结构上有加锁/解锁操作时,则经过该控制结构产生的状态Configuration,根据操作的类型对读锁/写锁集合进行修改。于本专利技术的一实施方式中,提取状态图中的操作标记函数信息,根据操作标记函数信息获取并发错误判断信息,据以遍历判断状态图获取错误检测结果,具体包括:定义状态图中的形式类别信息,形式类别信息与状态图中各类别的并发错误一一对应;根据行驶类别信息遍历状态图,判断是否匹配形式类别信息;若是,则保存形式类别信息,根据形式类别信息获取错误检测结果;若否,则持续遍历状态图。于本专利技术的一实施方式中,定义状态图中的形式类别信息,形式类别信息与状态图中各类别的并发错误一一对应,具体包括:获取各类型错误的状态图遍历特征;将状态图遍历特征处理为形式类别信息,行驶类别信息与各类别的并发错误对应;将行驶类别信息保存为错误判断条件集合。于本专利技术的一实施方式中,一种基于Petri网的并发错误检测系统,包括:模型构建模块、状态图模块和错误检测模块;模型构建模块,用于使用Petri网对被检测系统进行静态分析获取静态分析数据,并根据静态分析数据构建检测系统模型;状态图模块,用于提取检测系统模型中的规则机制信息,根据规则机制信息生成状态图,状态图模块与模型构建模块连接;错误检测模块,用于提取状态图中的操作标记函数信息,根据操作标记函数信息获取并发错误判断信息,据以遍历判断状态图获取错误检测结果,错误检测模块与状态图模块连接。如上所述,本专利技术目的在于提供的一种基于Petri网的并发错误检测认证方法及系统克服现有技术的不足,提出一种新的检测系统模型。该系统模型能以较为简单的结构表现出并发系统的多种特性如同步结构,数据读写操作,选择跳转等,根据并发程序源码,对并发程序建议对应的错误检测系统模型。根据设计出来的运行规则和机制,产生对应状态图,并在此基础上对状态图进行分析,判断是否存在特定的并发错误,增设标签函数简化并发程序建模的复杂度。综上,本专利技术提供一种基于Petri网的并发错误检测方法及系统,解决了现有技术存在的对并发错误的检测效率低和检测精度差的技术问题。附图说明图1显示为本专利技术的基于Petri网的并发错误检测方法步骤示意图。图2显示为图1中步骤S1在一实施例中的具体流程图。图3显示为图2中步骤S14在一实施例中的具体流程图。图4显示为图1中步骤S2在一实施例中的具体流程图。图5显示为图4中步骤S23在一实施例中的具体流程图。图6显示为图1中步骤S3在一实施例中的具体流程图。图7显示为图6中步骤S31在一实施例中的具体流程图。图8显示为本专利技术的基于Petri网的并发错误检测系统模块示意图。图9显示为本专利技术的基于Petri网的并发错误检测系统模型示例图。图10显示为本专利技术的基于Petri网的并发错误检测系统状态图。元件标号说明1基于Petri网的并发错误检测系统11模型构建模块12状态图模块13错误检测模块步骤标号说明S1~S3方法步骤S11~S15方法步骤S141~S143方法步骤S21~S24方法步骤S231~S235方法步骤S31~S34方法步骤S311~S313方法步骤具体实施方式以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效。请参阅图1至图10,须知,本说明书所附图式所绘示的结构,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与本文档来自技高网...

【技术保护点】
1.一种基于Petri网的并发错误检测方法,其特征在于,包括:/n使用Petri网对被检测系统进行静态分析获取静态分析数据,并根据所述静态分析数据构建检测系统模型;/n提取所述检测系统模型中的规则机制信息,根据所述规则机制信息生成状态图;/n提取所述状态图中的操作标记函数信息,根据所述操作标记函数信息获取并发错误判断信息,据以遍历判断所述状态图获取错误检测结果。/n

【技术特征摘要】
1.一种基于Petri网的并发错误检测方法,其特征在于,包括:
使用Petri网对被检测系统进行静态分析获取静态分析数据,并根据所述静态分析数据构建检测系统模型;
提取所述检测系统模型中的规则机制信息,根据所述规则机制信息生成状态图;
提取所述状态图中的操作标记函数信息,根据所述操作标记函数信息获取并发错误判断信息,据以遍历判断所述状态图获取错误检测结果。


2.根据权利要求1所述的基于Petri网的并发错误检测方法,其特征在于,所述使用Petri网对被检测系统进行静态分析获取得静态分析数据,并根据所述静态分析数据构建检测系统模型,具体包括:
将数目不小于两个的线程设计为独立系统,所述独立系统与所述线程对应;
定义所述独立系统中的控制结构的操作锁定解锁函数;
根据所述操作锁定解锁函数判断所述控制结构是否可运行,获取控制结构判断信息;
根据所述控制结构判断信息制定操作逻辑;
根据所述操作规则构建所述检测系统模型。


3.根据权利要求2所述的基于Petri网的并发错误检测方法,其特征在于,所述根据所述控制结构判断信息制定操作逻辑,包括:
预设读写逻辑为:满足读取数据d前,先进行对应数据d的写操作;
预设同步原则满足读写冲突,写写冲突;
汇总所述预设读写原则和所述预设同步原则为所述操作规则。


4.根据权利要求1所述的基于Petri网的并发错误检测方法,其特征在于,所述提取所述检测系统模型中的规则机制信息,根据所述规则机制信息生成状态图,具体包括:
获取所述检测系统模型中的各独立系统的控制结构及系统运行条件;
根据所述控制结构上的状态变化获取各所述独立系统的状态变化集;
获取所述控制结构上发生读写及加解锁操作时所述状态变化集的数据修改信息,根据所述数据修改信息获取状态图发生逻辑;
根据所述系统运行条件和所述状态图发生逻辑生成所述状态图。


5.根据权利要求4所述的基于Petri网的并发错误检测方法,其特征在于,所述获取所述控制结构上发生读写及加解锁操作时所述状态变化集的数据修改信息,根据所述数据修改信息...

【专利技术属性】
技术研发人员:蒋昌俊闫春钢刘关俊张亚英孙佳全相东明
申请(专利权)人:同济大学
类型:发明
国别省市:上海;31

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

1