[发明专利]一种基于Petri网MIP法的并发程序死锁检测方法在审
申请号: | 201410394878.8 | 申请日: | 2014-08-08 |
公开(公告)号: | CN104156262A | 公开(公告)日: | 2014-11-19 |
发明(设计)人: | 吴文慧;王寿光 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 无 | 代理人: | 无 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 petri mip 并发 程序 死锁 检测 方法 | ||
技术领域
本发明涉及并发程序死锁检测方法,特别地涉及一种基于Petri网MIP法的并发程序死锁检测方法。
技术背景
并发程序,是指包含两个或多个并发运行线程的程序,可以用来提高程序的响应速度和处理器的使用效率。随着计算机多核时代的到来,这种多线程并发程序已然成为现代程序设计的趋势。但并发程序在使用时,多线程间的切换运行及共享变量却会产生互斥、同步和死锁等问题。这些并发错误问题不仅会降低程序员的工作效率,削弱软件的安全,最终还会损害终端用户的利益。
目前,针对多线程并行软件中死锁问题的研究多是基于实践的经验化方法,一种典型的点对点(ad-hoc)模式。如,基于代码分析的静态死锁检测法,虽然不会占用程序的运行时间,但会因为缺乏运行信息而限制了分析的准确性,产生大量的死锁“伪警告”。银行家算法及其变式属于动态死锁避免,但过于简单的模型和昂贵的在线计算成本使该算法不能很好地应用于实际。在动态死锁检测中,一种比较流行的做法是通过设置检测点和自动回滚来在线调试程序的行为,但像I/O这种不可撤销行为就不能实现回滚。并且,该方法由于只能在运行时进行死锁检测,检测到的只有那些已由具体输入和执行环境所触发的死锁,因此可能会遗漏许多存在却没触发的死锁。
相较于基于实践的经验化方法,基于Petri网的模型化死锁检测方法避免了上述方法的诸多缺点。首先,Petri网是目前最好的并发模型之一,能够清楚、直观地描述冲突、互斥、并发、异步等性质。其次,Petri网模型有着简洁的表述形式,通过可以流经整个网络的托肯来表示并发的执行实体,不但可以进行静态的性质分析,还可以进行动态的仿真检测。这不仅避免了原本静态死锁检测时会产生的由于运行信息的缺乏而导致的诸多“伪警告”,还避免了原本动态死锁检测时产生的昂贵的在线计算成本,以及因并发程序的不确定性导致没有触发而遗漏死锁的现象。
本发明提供了一种基于Petri网MIP法的并发程序死锁检测方法。实现了多线程并发程序到Petri网模型的转换,并基于MIP法对转换后的Petri网模型进行死锁检测。该方法不仅充分发挥了Petri网描述异步、并发动态系统的优势,还通过MIP法计算系统中是否存在可被清空的信标(信标是Petri网中与死锁密切相关的一个重要概念)来判断系统的活性,从而完成对并发程序的死锁检测。本发明将已经被广泛应用于柔性制造系统(Flexible Manufacturing System,FMS),如S3PR、S4PR、ES3PR等子网的MIP法,用于并发程序的死锁检测,发现尽管MIP问题的求解是NP-hard,但避免了系统所有信标的求解,有效提高了计算效率。
另外,基于Petri网的MIP法应用于并发程序死锁检测时,还有一个非常重要的优点在于其结果具有确定性。实际上,对并发程序的死锁检测,传统的非模型化死锁检测方法并不能保证程序无死锁。这对实际应用中某些对安全性要求很高的尖端领域或者大型复杂系统(如核电站、航天航空等)来说非常危险,一旦小概率的死锁最终触发必将带来重大的经济损失甚至产生灾难性后果。而本发明采用的基于Petri网MIP法的并发程序死锁检测方法,在建立待检程序的Petri网模型基础上,只要通过MIP法计算的结果为不存在可被清空的信标,就可确定该程序无死锁。且,由MIP法得到的Petri网模型死锁状态还可以反馈给编程人员,为其程序调整提供有效信息及解决思路。
发明内容
本发明目的是设计一种基于Petri网MIP法的并发程序死锁检测方法,克服现有检测方法存在的缺陷,提供一种简单、高效并具有确定性结果的非在线并发程序的死锁检测方法。
一种基于Petri网MIP法的并发程序死锁检测方法,其包括以下步骤:步骤(1)对于待检测的并发程序代码,根据其任务集和资源集,生成控制流图(CFG);步骤(2)根据生成的控制流图(CFG),创建Petri网模型;步骤(3)在已建立的Petri网模型基础上,基于MIP法进行死锁检测分析。步骤(4)输出检测结果。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410394878.8/2.html,转载请声明来源钻瓜专利网。