[发明专利]一种针对多线程软件的死锁预防方法在审
申请号: | 201910188482.0 | 申请日: | 2019-03-13 |
公开(公告)号: | CN110083456A | 公开(公告)日: | 2019-08-02 |
发明(设计)人: | 王寿光;朵文礼;吴文慧 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310012 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种针对多线程软件的死锁预防方法。本发明基于一类特殊的Petri网,Gadara网,对多线程软件进行建模并进行迭代控制。利用已有的MIP法检测Gadara网中可被清空的信标,得到可被清空信标的补库所集。在不影响结果和系统状态的条件下对信标补库所集进行处理,删除集合中多余的操作库所,并通过不可控变迁和不安全状态添加需要控制的操作库所。本发明基于信标的角度构建约束并添加控制器,通过添加少数的控制器就可以阻止大量导致程序进入到死锁的状态且不会阻止好的状态,因此能够有效减少方法迭代次数,提高计算效率,使得最终得到的受控网结构尽可能简单,从而能将本发明应用到实际情况。 | ||
搜索关键词: | 多线程软件 死锁 控制器 清空 信标 迭代控制 计算效率 系统状态 影响结果 有效减少 不安全 网结构 迭代 构建 建模 受控 预防 删除 集合 变迁 检测 应用 | ||
【主权项】:
1.一种针对多线程软件的死锁预防方法,其特征在于,包括以下步骤:(1)基于一类特殊的Petri网,Gadara网,对多线程软件建模,所述Gadara网,能够直观地建模多线程软件的并发特性,准确地描述其行为操作;(2)利用MIP法检测(1)所述Gadara网模型中包含资源库所数最少的可被清空信标,若MIP法无解,则网络是活的,方法结束;否则,继续执行以下步骤;(3)根据(2)所述的可被清空信标S,得到其补库所集若补库所集中包含信标中的操作库所,将其直接从补库所集中删除;(4)根据(3)所述补库所集构建约束防止那些一旦被标记就导致所述信标S被清空的补库所被同时标记;(5)设置集合C,(6)考虑不可控变迁问题,若C中库所的输入变迁是不可控的,且此变迁的输入操作库所不在C中,将其输入操作库所添加到C中;(7)以(6)所述集合C中的库所为起点向上检查,将必然导致C中库所被标记的操作库所,添加到C中;(8)重复步骤(6)、(7)至集合C再无操作库所添加,根据C构建新的约束∑p∈CM(p)≤∑p∈C∩M(p)=11‑1;(9)利用位置不变量技术,合成与(8)所述约束对应的控制器,并添加至(1)所述模型中;(10)将(9)所述合成的受控网输入到步骤(2)中,利用MIP法检测所述受控网中是否存在可被清空的信标,若存在,则表示受控网中存在死锁,继续执行步骤(3)及之后的步骤;否则,表示网络是活的,停止检测,方法终止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910188482.0/,转载请声明来源钻瓜专利网。