CN111124694B - 一种基于petri网的可达图的死锁检测和解决方法 - Google Patents
一种基于petri网的可达图的死锁检测和解决方法 Download PDFInfo
- Publication number
- CN111124694B CN111124694B CN201911110443.5A CN201911110443A CN111124694B CN 111124694 B CN111124694 B CN 111124694B CN 201911110443 A CN201911110443 A CN 201911110443A CN 111124694 B CN111124694 B CN 111124694B
- Authority
- CN
- China
- Prior art keywords
- deadlock
- network
- petri
- graph
- reachable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于petri网的可达图的死锁检测和解决方法,包括以下步骤:1、构造待检测代码对应的petri网,构造petir网的可达树;2、根据构造的可达树构造可达图;3、判断可达图中是否存在叶子结点,若存在,则判断待检测代码存在死锁,转到下一步,若不存在,则判断待检测代码不存在死锁;4、构造petri网对应的故障树,并通过故障诊断得到最小割集;5、根据最小割集和可达图判断得到故障位置,根据故障位置对petri网和待检测代码进行改进。本发明通过Petri网的可达图来判断系统的活性,结合可达图与故障诊断定位确定导致Petri网无活性的问题点,通过问题点有向弧的改进可以有效解决死锁的问题。
Description
技术领域
本发明属于死锁检测方法领域,特别涉及一种基于petri网的可达图的死锁检测和解决方法。
背景技术
报告显示接近3%(6500/198000)的程序缺陷是由死锁的原因造成的。死锁是应用程序致命的问题之一,死锁会阻碍进程使用系统资源、阻止其他作业执行,导致系统资源利用率降低,甚至系统瘫痪。研究死锁的原因和解决死锁对提高软件的可靠性具有非常重要的意义。
系统资源不足、进程推进顺序错误和资源分配不合理等原因是造成死锁最主要的三个原因,死锁检测和解除死锁可以提高系统的稳定性。目前国内外对死锁检测的研究主要集中在静态死锁、动态死锁和混合死锁三个方面。
Sfinghal M提出用资源等待图等模型(WFG图)描述系统的状态,节点表示进程,通过检查WFG图是否符合环等待等死锁特征来判断是否存在死锁。Li提出Pulse检测系统资源引起的死锁.MagicFuzz分析程序运行时产生的日志文件预测潜在的死锁。Williams A通过一个学习系统验证程序包括死锁和竞争等脆弱性,根据规则训练框架的模型,按照优先级、准确度来分析死锁。Engler D通过流敏感的过程间静态分析来检测类Unix操作系统中的死锁。Agarwal在程序运行时建立锁的顺序图,采用环等待检测算法来检测死锁。
以上方法具有死锁检测准确度较高、可扩展性强等优点,但目前检测死锁的方法存在如下的不足:
1)程序运行时的路径是可能执行路径的一部分,动态死锁检测技术不能发现程序潜在的死锁;
2)静态死锁采用保守的方法估计变量值,缺乏精确的运行信息,检测结果误报率高,漏报率低。
路径是程序运行时可执行路径的一部分,动态检测技术不能发现程序潜在的死锁。
发明内容
本发明的所要解决的技术问题是提供一种基于petri网的可达图的死锁检测和解决方法。
本发明解决上述技术问题的技术方案如下:
一种基于petri网的可达图的死锁检测和解决方法,包括以下步骤:
步骤1、构造待检测代码对应的petri网,构造petir网的可达树;
步骤2、根据构造的可达树构造可达图;
步骤3、判断可达图中是否存在叶子结点,若存在,则判断待检测代码存在死锁,转到下一步,若不存在,则判断待检测代码不存在死锁,检测结束;
步骤4、构造petri网对应的故障树,顶上事件是死锁情况,并通过故障诊断得到最小割集;
步骤5、根据最小割集和可达图判断得到故障位置,根据故障位置对petri网进行改进,得到改进后的petri网,根据改进后的petri网对待检测代码进行改进。
进一步的,所述步骤5中,结合可达图与故障诊断定位确定导致Petri网无活性的问题点,通过问题点有向弧的改进解决死锁。
进一步的,所述步骤5中,还包括计算基本事件的结构重要度系数的步骤,用C(i)表示基本事件pi的结构重要度系数,根据以下公式计算C(i):
其中S为最小割集总数,nj为基本事件pi在Sj的基本事件数。
本发明的有益效果为:本发明通过Petr i网的可达图来判断系统的活性,判定故障诊断死锁问题的最小割集,结合可达图与故障诊断定位确定导致Petr i网无活性的问题点,通过问题点有向弧的改进达到解决死锁的问题。通过一个互斥锁的伪代码验证Petr i网可达图的死锁检测,并有效解决死锁。
附图说明
图1是本发明的流程示意图;
图2是根据待检测代码构造的petr i网;
图3是petr i网的可达树;
图4是petr i网的可达图;
图5是petr i网的故障树;
图6是改进后的petr i网。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
1.死锁和petr i网可达图
进程在执行过程中由于计算次序关系、资源请求和数据间的依赖关系等现象在多道处理系统、并行系统和分布式系统中比较容易产生死锁,满足互斥、请求和保持、不剥夺、循环等待中的一个条件就可能产生死锁。Petr i网可达图能比较好的描述系统的动态行为和资源流动。所以用Petr i网的可达图能比较好的解决死锁问题。
2.1死锁产生的原因和具备的条件
系统中有许多不同类型的资源,临界资源需采用互斥访问并且不可被抢占。一组进程中每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的,假设有P1和P2两个进程,都需要A、B两个资源,现在P1持有A资源等待资源B,而P2持有B资源等待资源A,两个都等待对方占有的而不肯释放资源,就这样无限等待中形成死锁,这是死锁的一种情况。
通常在并行程序中的由于资源请求、数据交换和计算先后产生复杂多样的依赖关系,当依赖关系满足几个特定条件的时候,就可能会发生死锁。多道处理系统、分布式系统和并行计算系统中频繁使用各种类型的锁来实现资源共享,保证程序同步。死锁的产生要满足互斥、请求和保持、不剥夺、循环等待四个条件。
互斥条件指多进程在系统执行过程中,一个共享资源只能被一个进程所使用,其他进程要使用该资源必须等正在使用的进程释放该资源进程在请求得不到资源满足的情况下不释放已占有的资源是死锁的请求和保持条件。不剥夺条件是已经被某个进程占用的资源在它使用完主动释放之前,其他进程不能强制夺取这个资源。循环等待条件假设有i个进程,分别依次将它们标记为P1,P2,...,Pi,其中每一个进程都在等待被另一个进程占用的资源,P1在等待被P2占用的资源,p2在等待被P3占用的资源……Pi-1在等待被Pi占用的资源,这i个进程之间形成了循环等待的情况。
死锁对进程的执行结果、系统资源利用率等方面有较大的危害。多个程序在同时执行过程中,进程间可能出现竞争多个资源的现象,假设进程A申请被其他进程占用的资源,那么进程A有可能永远处于等待状态而无法改变该状态,进程A就处于死锁状态。进程A得不到所需的资源,不能向前推进导致进程得不到正确的结果。处于死锁状态的进程同时也不释放已经占有的资源,以至这些资源不能被其他进程利用,导致资源的利用率降低,于是产生了新的死锁。
2.1Petr i网的结构
Petr i是一种网状模型。有两种节点:①库所(位置):用P或S标识,库所代表的是状态元素;②变迁:标识的是变化元素,也就是资源状态变化。这两个节点用有向弧连接,同时两个库所或者两个变迁之间不存在有向弧。库所中会存在着托肯(token)也就是令牌,它代表着状态资源或信息资源。库所中令牌分布决定变迁的使能和激发,变迁激发后会改变令牌的分布。
在Petr i网图中:
①“□”表示库所;
②“|”或表示变迁;
③“·”或数字来表示令牌;
④用“—>”连接库所与变迁;
基本的Petr i网是N=(S,T;F)三元组,其中S={S1,S2,...,Sn}是库所集合,T={T1,T2,...,Tn}为变迁集合,F为流关系。
N=(S,T;F)构成的充分必要条件是:
①代表着库所和变迁之间没有相同的元素;
②代表着一个Petr i网中至少含有一个库所元素或者变迁元素;
③F是建立从库所到变迁,从变迁到库所的流关系;
Petr i网的三个性能:
②Petr i网的一个初始标识N0通过变迁使能最终得到新标识N1,则认为N0到N1是可达的;
②Petr i网的各个库所中的token数目必须是有限的。需要注意的是在理论分析的时候可以假定库所中容量是无穷的,但在实际系统设计时必须使Petr i网中每个库所在任何状态下的token数小于库所的最大容量,否则容易导致溢出现象;
③在任意标识下存在某一变迁序列的激发使变迁使能产生新标识则称该变迁具有活性。Petri网中只有所有变迁都具有活性,整个Petri网才是“活的”。Petri网的活性对于判断死锁很有用。出现锁死的情况的时候一般都是资源分配不合理或者资源的耗尽。
2.Petri网可达图的死锁检测和修复
Petri网是离散并行系统的数学表示。Petri网含有大量数学表达方式,并且有详细直观的图形描述。袁崇义的《Petri网原理》[8]一书中,对Petri网这样描述:“用Petri网描述的系统有一个共同的特征:系统的动态行为表现为资源(物质资源和信息资源)的流动。”这里可以看出Petri网是十分适合解决死锁问题的模型。
现在对于应用Petri网来检测死锁主要有通过Petri网的变迁分裂网及基于真值表的死锁求解。这两个方法都不太能直观的表现死锁问题,同时对于Petri网来说只能定位到可能出问题的库所,不能知道如何改进Petri网能够解决死锁问题。
在Petri网中可达图可以用来判断Petri网的基本性能活性。。而Petri网可以应用在故障诊断中,能有效求出最小割集。通过两者的结合可以有效直观的发现程序中死锁问题。
用Petri网描述程序中资源的流动,根据可达树和可达图判断出Petri网的活性并诊断检测出故障点。结合二者找出程序中死锁的原因,对原Petri网改造解决死锁。实验中要对程序进行Petri网的构造,根据Petri网构造出可达树和可达图,结合故障诊断来判断造成程序死锁的原因。
3.1构造petir的可达图
可达树是Petri网分析系统的一种重要工具,它反映了Petri网许多重要性质。
定义1:令Petri网系统为N=(S,T;F,M0),其中M0是初始标识。N的可达树由标识为结点构成的树。可以标识为ш,ш的定义为对于所有n∈{0,1,2,3,...},n<ш且n+ш=ш+ш=ш-n=ш。可达树的弧线由T元素标注。可达树构造的方式为:
(1)根节点r由M0标注;
(2)一个网系统有若干变迁在M0之后有发生权,随意选择其中一组变迁发生,得到新标识M1...依次执行下去;
(3)一个标注M的结点是叶结点,后面无变迁使能可达树则结束;
(4)一个标注M的结点不是叶结点,对于所有t∈T使得在M下可实施t从而产生一个新结点y,x到y产生新弧线。y结点标注的标识M’由M1’计算(M1’(s)=M(s)-W(s,t)+W(t,s))。
M’的计算有两种情况:
(1)从根结点r到y的路上,存在一个新标识M”的结点z≠y且对于
M1’(s)≥M”(s)
(2)其他情况,M’=M1
定义2:Petr i网的可达图是一个有向图G=(V,E,R),其中:v∈V表示一类可达的标识;e∈E表示从一类可达标识到另一类可达标识的有向弧;R是一个转换关系,R:E→V×V。可达图是可达树中相同结点的重叠。
定义3:令Petr i网的表达式为N=(S,T;F,M0),S={s1,s2,s3,...},T={t1,t2,t3,...}。
(1)设矩阵A=[axy](x∈(1,n),y∈(1,m))是N的关联矩阵,axy=W(ty,sx)-W(sx,ty);
(2)找出Petr i网的变迁输出矩阵(O矩阵)和输入矩阵(I矩阵),AT=O-I。求出的AT就是A的转置矩阵。
3.2可达图的死锁检测
如图1所示,根据Petri网特征首先构造Petri网,根据Petri网中五个库所均有资源(token)变迁的流向判断token的流动情况构造可达树和可达图。根据可达图的叶子节点判断产生死锁的可能性,并提出解决死锁的方法。步骤如下:
Step1:如图2所示,根据待检测代码构造Petir网:
根据Petri网我们可以构造出Petri网库所,如表1:
表1 Petri网库所
Step2:根据定义1构造可达树:在初始情况下,五个库所均有资源(token),根据Petri网中五个库所均有资源(token)变迁的流向判断token的流动情况,如图3所示。
Step3:如图4所示,根据定义2和step2中构造的可达树构造可达图:在可达图中,为避免Ш带来的信息缺失,用多项式表达可达树的Ш,根据2.2中对活性的解释,发现如果可达图中活性反映可达图中含有的叶子结点会导致Petr i网失去活性;根据图4可以看出该可达图存在两个叶子结点,可以得出:
①该Petr i网不具有活性(即Petr i网存在死锁);
②t3和t4两个变迁引起Petr i网不具有活性;
Step4:从可达图可以看出Petr i网存在锁死;如图5所示,构造故障树对应Petr i网,用故障诊断可以得出最小割集;p1是顶上事件(即最不希望程序出现的死锁情况),{p2,p3,p4}为可能引起p1的事件,图5的p2对应图2的p2无资源,图5的p3对应图2的p5资源未释放,图5的p4则对应图2的p3资源未释放;
Step5:根据定义3开始对图5进行故障诊断;从所有底部事件开始到顶上事件依次编号,其中库所若只有1个输入,就写出变迁。若库所有多个输入,就并列写出所有的序列,这样得到所有变迁序列。再根据定义3得出AT。结合状态方程M=M0+ATX解出最小割集;
变迁序列为{t1},{t2}对应的变迁矩阵为:
最终标识M为:
M={-1000}
根据状态方程得M0为:
得出最小割集为K(1):{p2},K(2):{p3,p4},代表任一最小割集的发生都可能引起顶上事件p1的发生。用C(i)表示基本事件pi的结构重要度系数,根据公式:
其中S为最小割集总数,nj为基本事件pi在Sj的基本事件数。
综上所述得出C(2)>C(3)=C(4)。因此p2结构重要度系数更高,对于本实验实例来说程序运算量极小,理想情况下CPU出现资源不足的情况概率为0,外部环境也可能导致CPU资源不足。
Step6:结合最小割集和可达图来看,对于实验的伪代码来说,引起死锁故障的地方在图2Petr i网的{p3,p5,t3,t4},
3.实验验证
通过Petr i网的可达图来判断系统的活性,判定故障诊断死锁问题的最小割集,结合可达图与故障诊断定位确定导致Petr i网无活性的问题点,通过问题点有向弧的改进达到解决死锁的问题。通过一个互斥锁的伪代码验证Petri网可达图的死锁检测,并有效解决死锁。
实验伪代码:
a账户操作线程启动
b账户操作线程启动”
再根据图5中故障诊断Petri网中的假设,相应的改动图2的Petri网,如图6所示;
对应图6改善后的实验伪代码则为:
a账户操作线程启动
b账户操作线程启动”
为了可以更好的看出实验结果,根据伪代码进行了Python程序测试,下面结果1为未解决锁死情况下图2Petri网对应的Python程序运行结果,结果2为解决锁死情况下图6Petri网对应的Python程序运行结果:
D:\Python\python.exe″F:/Python file/PythonTest/main.py″
wait for lock...
wait for lock...
结果1
D:\Python\python.exe″F:/Python file/PythonTest//main.py″
wait for lock...
wait for lock...
finish...
finish...
结果2
根据结果1和结果2可以看出,改进后的待检测代码没有了死锁问题。
4.总结
Petri网十分直观的利用托肯通过变迁在库所中的流动来表现程序的动态行为,程序出现死锁的原因大部分都是竞争资源或者资源分配不合理。Petri网的活性概念的提出就是源于对实际系统运行中是否会出现死锁的探索的需要,可达图可以很好的表示Petri网活性。故障诊断则可以判断出导致死锁问题的最小割集的结构重要度,通过二者结合可以很好的定位程序死锁点,通过改造定位到的Petri网的死锁点的有向弧来解决死锁问题。通过实验可以发现这一方法可以解决互斥锁问题。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于petri网的可达图的死锁检测和解决方法,其特征在于,包括以下步骤:
步骤1、构造待检测代码对应的petri 网,构造petir网的可达树;
步骤2、根据构造的可达树构造可达图;
步骤3、判断可达图中是否存在叶子结点,若存在,则判断待检测代码存在死锁,转到下一步,若不存在,则判断待检测代码不存在死锁,检测结束;
步骤4、构造petri 网对应的故障树,顶上事件是死锁情况,并通过故障诊断得到最小割集;
步骤5、根据最小割集和可达图判断得到故障位置,根据故障位置对petri 网进行改进,得到改进后的petri 网,根据改进后的petri 网对待检测代码进行改进,具体为结合可达图与故障诊断定位确定导致Petri网无活性的问题点,通过问题点有向弧的改进解决死锁。
2.根据权利要求1所述的基于petri网的可达图的死锁检测和解决方法,其特征在于,所述步骤5中,还包括计算基本事件的结构重要度系数的步骤,用C(i)表示基本事件pi的结构重要度系数,根据以下公式计算C(i):
;其中S为最小割集总数, nj为基本事件pi在Sj的基本事件数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110443.5A CN111124694B (zh) | 2019-11-14 | 2019-11-14 | 一种基于petri网的可达图的死锁检测和解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110443.5A CN111124694B (zh) | 2019-11-14 | 2019-11-14 | 一种基于petri网的可达图的死锁检测和解决方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124694A CN111124694A (zh) | 2020-05-08 |
CN111124694B true CN111124694B (zh) | 2023-10-27 |
Family
ID=70495634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911110443.5A Active CN111124694B (zh) | 2019-11-14 | 2019-11-14 | 一种基于petri网的可达图的死锁检测和解决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124694B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113361136B (zh) * | 2021-07-02 | 2022-04-29 | 河北大学 | 一种基于Petri网的自动制造系统可诊断性验证方法 |
CN115903508B (zh) * | 2022-12-02 | 2023-09-19 | 南通大学 | 一种基于Petri网的柔性制造系统的鲁棒死锁检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853201A (zh) * | 2010-05-24 | 2010-10-06 | 南京航空航天大学 | 一种基于着色petri网的软件并行测试方法及工具 |
CN102110151A (zh) * | 2011-02-17 | 2011-06-29 | 深圳天源迪科信息技术股份有限公司 | 出帐系统的Petri网模型的分析方法 |
CN103019233A (zh) * | 2012-12-21 | 2013-04-03 | 华侨大学 | 一种检测plc梯形图程序中是否存在竞态的方法 |
CN104461871A (zh) * | 2014-11-18 | 2015-03-25 | 合肥康捷信息科技有限公司 | 一种基于petri网的死锁检测方法 |
CN109598949A (zh) * | 2018-11-29 | 2019-04-09 | 南京理工大学 | 基于赋时Petri网的T形路口紧急车辆抢占控制方法 |
CN110308690A (zh) * | 2019-07-26 | 2019-10-08 | 华侨大学 | 基于Petri网的无刷直流电机DSP逻辑控制程序设计方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120041794A1 (en) * | 2010-08-10 | 2012-02-16 | Sap Ag | Method and system to validate component-based implementations of business processes |
-
2019
- 2019-11-14 CN CN201911110443.5A patent/CN111124694B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853201A (zh) * | 2010-05-24 | 2010-10-06 | 南京航空航天大学 | 一种基于着色petri网的软件并行测试方法及工具 |
CN102110151A (zh) * | 2011-02-17 | 2011-06-29 | 深圳天源迪科信息技术股份有限公司 | 出帐系统的Petri网模型的分析方法 |
CN103019233A (zh) * | 2012-12-21 | 2013-04-03 | 华侨大学 | 一种检测plc梯形图程序中是否存在竞态的方法 |
CN104461871A (zh) * | 2014-11-18 | 2015-03-25 | 合肥康捷信息科技有限公司 | 一种基于petri网的死锁检测方法 |
CN109598949A (zh) * | 2018-11-29 | 2019-04-09 | 南京理工大学 | 基于赋时Petri网的T形路口紧急车辆抢占控制方法 |
CN110308690A (zh) * | 2019-07-26 | 2019-10-08 | 华侨大学 | 基于Petri网的无刷直流电机DSP逻辑控制程序设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111124694A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Van Dijk et al. | Sylvan: Multi-core decision diagrams | |
Banerjee et al. | A theory of data race detection | |
JP4698757B2 (ja) | ソフトウェアトランザクションのコミット順序および競合の管理 | |
CN111124694B (zh) | 一种基于petri网的可达图的死锁检测和解决方法 | |
JP2014146355A (ja) | トランザクションを用いるシーケンシャルフレームワークの並行化 | |
US8141082B2 (en) | Node-based representation of multi-threaded computing environment tasks, and node-based data race evaluation | |
CN107992358B (zh) | 一种适用于核外图处理系统的异步io执行方法及系统 | |
US20120059997A1 (en) | Apparatus and method for detecting data race | |
US8607204B2 (en) | Method of analyzing single thread access of variable in multi-threaded program | |
Maiya et al. | Efficient computation of happens-before relation for event-driven programs | |
Sinha et al. | Predicting serializability violations: SMT-based search vs. DPOR-based search | |
Che et al. | Work stealing in a shared virtual-memory heterogeneous environment: A case study with betweenness centrality | |
Jia et al. | VeriLin: A Linearizability Checker for Large-Scale Concurrent Objects | |
Protze et al. | Runtime correctness checking for emerging programming paradigms | |
Liao et al. | Simulation analysis of multithreaded programs under deadlock-avoidance control | |
El-kustaban et al. | Formalising of transactional memory using interval temporal logic (ITL) | |
Guo et al. | Work-in-progress: Toward a coq-certified tool for the schedulability analysis of tasks with offsets | |
US20120110302A1 (en) | Accelerating Generic Loop Iterators Using Speculative Execution | |
Jia¹ et al. | Check for updates | |
Wenjie et al. | An adaptive persistence and work-stealing combined algorithm for load balancing on parallel discrete event simulation | |
Jurish et al. | Multi-threaded composition of finite-state-automata | |
Sun | Concolic Testing of Programs with Concurrent Dynamic Data Structures | |
Yu et al. | A parallel approach to concolic testing with low-cost synchronization | |
Gan et al. | Deadlock control of multithreaded software based on petri nets: A brief review | |
Liua et al. | A survey of siphons in Petri nets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |