【技术实现步骤摘要】
基于Petri网的并发错误检测方法及系统
本专利技术涉及一种并发检错的方法,特别是涉及一种基于Petri网的并发错误检测方法及系统。
技术介绍
并发程序常常伴随着不易被检测的并发错误,像是死锁,数据竞争等。由于这些并发错误在绝大多数执行顺序下不会出现,只有在某些特定的执行顺序下才会触发这些并发错误,因此常常需要花费较大的开销才能捕捉这些错误。传统的并发错误检测大体上分为动态执行控制和静态源码分析。动态执行控制主要是监视程序运行,在监视过程中识别共享变量和进行锁集求交运算,该技术虽然可以在不用预先获取程序源码的基础上进行检测,但是执行过程中的开销较大,并且由于不清楚源码情况,一次执行暴露全部并发缺陷的概率较低,测试过程中需要大量的测试用例。而静态源码分析的方法在建立模型后,具有开销小、效率快等众多优点,只能很难保证语义和构建的模型完全等价。综上所述,现有技术中的动态执行控制和静态源码控制并发检错技术需要准备大量测试用例构建模型不等价,现有技术存在对并发错误的检测效率低和检测精度差的技术问题。
技术实现思路
...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。