CN103473130B - 一种基于随机进程代数的并发系统死锁检测方法 - Google Patents
一种基于随机进程代数的并发系统死锁检测方法 Download PDFInfo
- Publication number
- CN103473130B CN103473130B CN201310436849.9A CN201310436849A CN103473130B CN 103473130 B CN103473130 B CN 103473130B CN 201310436849 A CN201310436849 A CN 201310436849A CN 103473130 B CN103473130 B CN 103473130B
- Authority
- CN
- China
- Prior art keywords
- deadlock
- stochastic process
- process algebra
- concurrent system
- model
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于随机进程代数的并发系统死锁检测方法,属于计算机应用技术领域。现有并发系统死锁检测技术都受状态空间爆炸问题的影响而效果不佳。本发明所述的方法主要是基于并发系统的逻辑架构和由它所决定的状态空间的结构特性来进行死锁检测,这种检测方法的复杂度基本不随系统中相同类型进程的数目的增加而增大。因而采用本发明所述的方法,能够有效地缓解一些大型并发系统死锁检测的状态空间爆炸问题。
Description
技术领域
本发明涉及计算机应用技术领域,具体涉及一种基于随机进程代数的并发系统死锁检测方法。
背景技术
并发系统的死锁是指该系统所处的一个不能执行任何动作或任务的状态,这是任何系统设计都必须避免的。计算机和通信等领域的并发系统的描述和验证往往通过使用随机进程代数这种建模方法来完成。随机进程代数是用代数作为工具对并发系统进行描述的一种形式化建模方法,常用的随机进程代数有PEPA[1]、IMC[2]等。当并发系统的随机进程代数模型建好后,对所设计的并发系统的验证(例如系统有没有死锁)就可以在这个模型上展开。
对基于随机进程代数的并发系统的死锁检测,通常的算法是遍历搜索整个状态空间去检测有没有死锁。但因为系统的状态空间会随着系统的规模呈“爆炸式”增长(通常是呈指数阶增长),这种检测方法对大规模系统不再可行。为了处理这种状态空间爆炸问题,学术界和工业界已经发展了很多技术和方法,如:降低状态空间(statespacereduction)方法[3],符号模型检验(symbolicmodelchecking)方法[4],数据流分析(dataflowanalysis)技术[5]等等。这些方法只能减轻或降低而不能完全解决状态空间爆炸问题。这方面的综述可参见文献[6]。随机进程代数模型的死锁检测也使用了BDD(BinaryDecisionDiagrams)技术[7]。这种技术把状态空间二分进行检测,对于大规模模型仍然不是很有效,因为一个规模巨大的状态空间要经过很多次“二分”才能化简到足够小。与之相关的利用Petri网建模并发系统,它的死锁检测问题可以归结为求解一个非线性规划问题[8]。但这个非线性规划问题的求解复杂度仍然受限于状况空间爆炸问题,即:求解复杂度随着状态数目的增加而爆炸式增长。目前对大规模并发系统而言,还没有比较有效的死锁检测算法。
本发明的思路主要是:用随机进程代数对并发系统进程建模,根据模型的架构及其由它所决定的状态空间的结构特性来进行死锁检测。因为模型的架构是一定的,它取决于实际系统的逻辑建构,不随系统中相同类型的进程的数目的增加而改变,因而不随状态数目的增加而改变。所以这个方法能够有效缓解一些大规模并发系统的死锁检测的状态空间爆炸问题。
本发明权利要求书中提到的从随机进程代数模型中提取动作矩阵的算法,可参见文献[9],这一算法是基于数值向量表示方法的。根据模型的动作矩阵生成线性化状态空间的方法,以及基于线性方程组的来检测线性化状态空间的死锁的算法,可以参见文献[10]。判断随机进程代数一致性的方法可以参照[8]进行。但需要说明的是:以上提到的文献[9,10]主要是针对PEPA这一种特殊的随机进程代数而言。而我们这里的方法已经不仅仅限于PEPA模型,已经大大拓展到所有的随机进程代数模型,因此跟已有结果是不同的。本发明权利要求4要保护的是检测具有列向量跟模型转移一一对应这种特征的动作矩阵是否具有EQ性的一种方法,据我们所知,尚未见到有文献做这方面的讨论。
有关死锁检测的相关专利有:“并行程序的死锁检测方法和系统”(授权公告号CN101937365B)、“一种多线程处理器线程死锁检测的方法及其系统”(授权公告号CN1324478C)、“检测和解除死锁的方法、装置和系统”(授权CN101295266B)、“数据库事务锁机制的死锁检测方法及装置”(授权公告号CN101576830B),这些专利主要涉及具体领域(如并行程序、数据库事务锁机制等)的死锁检测技巧,而本发明则适用于具有通用性和广泛性的并发系统的死锁检测,而且解决问题的思路也是不同的。另外,本发明也不同于侧重特定实际应用对象的专利,如“一种多维交换结构中的无死锁自适应路由方法”(授权公告号CN100399771C)、“电信网络中的死锁检测”(授权公告号CN100539515C)等。
参考文献
[1]J.Hillston,Acompositionalapproachtoperformancemodelling(PhDthesis),CambridgeUniversityPress,1996.
[2]H.Hermanns,InteractiveMarkovchains,Ph.D.thesis,Universit¨atErlangen-N¨urnberg,Germany,1998.
[3]J.Billington,G.E.Gallasch,L.M.Kristensen,andT.Mailund,ExploitingEquivalenceReductionandtheSweep-LineMethodforDetectingTerminalStates,IEEEtransactionsonsystems,manandcybernetics—partA:systemsandhumans,vol.34,no.1,January2004.
[4]K.L.McMillan,Symbolicmodelchecking.KluwerAcademicPublishers,1993.
[5]M.B.DwyerandL.A.Clarke,Dataflowanalysisforverifyingpropertiesofconcurrentprograms,Proc.SecondSymp.FoundationsofSoftwareEngineering,pp.62-75,Dec.1994.
[6]J.C.Corbett,Evaluatingdeadlockdetectionmethodsforconcurrentsoftware,IEEETransactionsonSoftwareEngineering,vol.22,no.3,March1996.
[7]M.L.Guerriero,QualitativeandQuantitativeAnalysisofaBio-PEPAModeloftheGp130/JAK/STATSignallingPathway,TransactionsonComputationalandSystemsBiologyXI,LectureNotesinComputerScience,vol.5750,SpringerBerlin/Heidelberg,pp.90–115,2009.
[8]J.M.Colom,E.Teruel,andM.Silva,LogicalpropertiesofP/Tsystemandtheiranalysis,MATCHSummerSchool(Spain),September1998.
[9]J.Ding,J.Hillston,NumericallyRepresentingStochasticProcessAlgebraModels,TheComputerJournal,vol.55.No.11.2012.
[10]J.Ding,J.Hillston,Structuralanalysisforstochasticprocessalgebramodels(InvitedPaper),ProceedingsoftheThirteenthInternationalConferenceonAlgebraicMethodologyandSoftwareTechnology(AMAST’10),LectureNotesinComputerSciencevol.6486.2011
发明内容
针对现有并发系统死锁检测技术中存在的缺陷,本发明的目的是提供一种基于随机进程代数的并发系统死锁检测方法。该方法是用随机进程代数对并发系统进行建模,利用系统或模型的逻辑建构和状态空间的结构特性来检测死锁,这种方法的计算复杂度几乎不随系统中相同类型的进程数目的增加而有较大的增加,因而能够有效地缓解一些大型并发系统死锁检测的状态空间爆炸问题。
为了达到以上目的,本发明采用的技术方案是:用随机进程代数对并发系统进行建模,从建好的随机进程代数模型中提取出动作矩阵;根据动作矩阵生成随机进程代数模型的线性化状态空间,检测线性化状态空间中死锁的存在性;如果线性化状态空间检测结果是无死锁,则该并发系统无死锁,若检测结果是存在死锁,则进一步判断随机进程代数模型是否同时满足一致性和EQ性。如果随机进程代数模型同时具有一致性和EQ性这两种特性,则并发系统必定有死锁。如果不同时具有这两种特性,则该方法不能做出判断。
本发明采用的技术方案还可采取以下措施进一步实现。
首先用随机进程代数对并发系统进行建模;再用数值向量来表示这个建好的随机进程代数模型的状态;再从此模型中提取标签动作集合,使得每一个标签动作都与模型的转移一一对应;最后根据这些标签动作生成动作矩阵,使得这个动作矩阵的每一列都跟模型的转移一一对应。
进一步,利用动作矩阵生成线性化状态空间;再对这个线性化状态空间用基于线性方程组的方法进行死锁检测。
更进一步,利用线性化状态空间的死锁检测结果来推断该模型是否存在死锁。如果线性化状态空间中检测结果是无死锁,则该系统无死锁;如果检测结果是存在死锁,则还须再进一步检测来判断系统有无死锁;
再进一步,判断随机进程代数模型是否同时具有一致性和EQ性这两种特性;如果同时具有这两种特性,则可以推断并发系统具有死锁;否则的话,本方法不能判断并发系统有无死锁。
本发明的效果在于:本发明利用并发系统的逻辑架构和状态空间的结构特性来检测死锁,对于具有大量相同类型的实体(比如有大量相同行为的用户或大量的相同功能的服务器等)的模型,死锁检测效果尤为显著。能够较好地缓解空间爆炸问题。特别是,在某些情形本发明所述的方法甚至能够说明哪种系统结构会以何种方式导致死锁。
附图说明
图1是本发明的基于随机进程代数的并发系统死锁检测流程图;
图2是用户-服务器并发系统的PEPA模型;
图3是从随机进程代数模型中导出标签动作集合和生成动作矩阵的方法;
图4是判断随机进程代数模型是否具有EQ性的方法。
具体实施方式
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明,可依照说明书的内容予以实施,并且为了让本发明的目的、特征和优点能够更明显易懂,以下特举实例并配合附图,详细说明如下。
这里需要检测的是一个有关用户和服务器的并发系统。这个并发系统由用户和服务器两个子系统通过并发动作job1和job2组合而成。每个用户有两种局部序态(localderivative),分别是“用户1”和“用户2”;每个服务器也有两种局部序态,即“服务器1”和“服务器2”。初始状态中,其中处在“用户1”和“用户2”的用户各有M1和M2个,处在“用户1”和“用户2”的服务器各有N1和N2个,因此并发系统中总共有M1+M2个用户和N1+N2个服务器。系统的工作机制是这样的:“用户1”和“服务器1”共同执行完并发动作job1后各自转化为“用户2”和“服务器2”;“用户2”和“服务器2”共同完成并发动作job2后又分别转为“用户1”和“服务器1”。
我们采用PEPA(PerformanceEvaluationProcessAlgebra,性能评估进程代数,参见J.Hillston,Acompositionalapproachtoperformancemodelling,CambridgeUniversityPress,1996)这种随机进程代数对这个并发系统进行建模,然后利用本发明所述的方法对建好的模型进行死锁检测。死锁检测的整个流程参见图1所示。
步骤10.根据系统的工作机制和PEPA的语言规则,为这个用户-服务器并发系统建立PEPA模型,其PEPA模型参见图2.
对于图1所示的这个PEPA模型,其模型状态的数值向量表示方式为:
m=(m[用户1],m[用户2],m[服务器1],m[服务器2])
这里m[用户1]表示的是处在“用户1”这个局部序态的用户的个数,其他的类似。模型的初始状态为m0=(M1,M2,N1,N2)。
随机进程代数模型的每一个行为或转移可以用标签动作来表示。我们可以从随机进程代数模型中导出标签动作集合,并生成动作矩阵,而且这个动作矩阵的每一个列向量都跟模型的一个转移一一对应。根据图3所示的算法,对于这里的用户-服务器并发系统的PEPA模型,我们所得到的动作矩阵C为:
步骤20.进一步,由动作矩阵C和模型的初始状态m0生成模型线性化状态空间LRSPsf(S):
对线性化状态空间LRSPsf(S)用基于线性方程组的检测方法进行死锁检测,可以得到以下的死锁集合D:
D=LRSPsf(S)∩{m|m[用户1]=m[服务器2]=0或m[用户2]=m[服务器1]=0}
落进以上集合D中的元素都是死锁。
步骤30.根据以上的表达式,当且仅当M1+N2和M2+N1均不为零时,集合D才是空集。当集合D是空集时,线性化状态空间LRSPsf(S)不含有死锁,此时并发系统不含有死锁。例如,假设系统和模型的初始状态为m0=(M1,M2,N1,N2)=(100,0,100,0),则集合D是空集,因而并发系统不含有死锁。如果“M1+N2和M2+N1均不为零”这个条件不满足,不妨设M2+N1=0,例如令m0=(M1,M2,N1,N2)=(100,0,0,100),则线性化状态空间LRSPsf(S)中含有死锁d=(100,0,0,100)。根据我们的检测方法,需要进一步检测模型的一致性和EQ性才能判断并发系统有无死锁。
步骤40.我们根据图4中所示的算法来检测模型的EQ性,检测结果是这个并发系统的PEPA模型具有EQ性。又易知,模型具有一致性。即这个模型同时具有一致性和EQ性。根据我们的检测方法,线性化状态空间含有死锁d=(100,0,0,100)意味着并发系统必定含有死锁。而事实上,这个并发系统确实含有一个死锁,即d=(100,0,0,100)。
根据以上的实施例可以看出:本发明对于并发系统的死锁检测效果是很好的。特别是对于有大量相同类型的组件重复出现在系统中的情形,本发明能够较好地缓解空间爆炸问题。比如上述的用户-服务器这个并发系统有M1+M2个用户和N1+N2个服务器,而本发明所述的死锁检测方法基本上不受用户数目和服务器数目的影响,也即不受系统规模的影响。本发明甚至能够说明,哪种系统初始状态会导致死锁而哪些不会导致死锁,这都是本发明的新颖之处。
需要说明的是,所描述的实施例在所有方面都被认为仅是说明性的而非限制性的,例如:
1)并发系统不限于用户-服务器这种系统;
2)建模工具不限于PEPA这种随机进程代数;
3)所附图式、参数设置等仅是提供参考与说明之用,并非用来对本发明加以限制。
因此,本发明的范围由所附权利要求书而非上述描述来指示。落入权利要求的等效技术方案的意义和范围中的所有变化都包含在其范围之中。
Claims (6)
1.一种基于随机进程代数的并发系统死锁检测方法,包括以下步骤:
步骤10:用随机进程代数对并发系统进行建模,从建好的随机进程代数模型中提取出动作矩阵;
步骤20:根据动作矩阵生成随机进程代数模型的线性化状态空间,检测线性化状态空间死锁的存在性;
步骤30:根据线性化状态空间的死锁检测结果,推断该并发系统是否存在死锁,如果线性化状态空间检测结果是无死锁,则该并发系统无死锁,若线性化状态空间检测结果是存在死锁,则转到步骤40;
步骤40:判断随机进程代数模型是否同时满足一致性和平等冲突EQ(EqualConflict)性,以此推断并发系统是否有死锁。
2.如权利要求1中所述一种基于随机进程代数的并发系统死锁检测方法,其特征是:在步骤10中,建模用的随机进程代数包括但不限于性能评估进程代数PEPA(PerformanceEvaluationProcessAlgebra)。
3.如权利要求1中所述一种基于随机进程代数的并发系统死锁检测方法,其特征是:在步骤10中,从随机进程代数模型中提取的动作矩阵满足它的列向量跟模型转移一一对应这个特征,动作矩阵是根据随机进程代数模型的数值型表示方法提取出来的。
4.如权利要求1中所述一种基于随机进程代数的并发系统死锁检测方法,其特征是:在步骤20中,检测线性化状态空间有无死锁是用基于线性方程组的方法。
5.如权利要求1中所述一种基于随机进程代数的并发系统死锁检测方法,其特征是:步骤40中判断并发系统有无死锁的方法是:如果随机进程代数模型同时具有一致性和EQ性这两种特性,则并发系统必定有死锁。
6.如权利要求1所述一种基于随机进程代数的并发系统死锁检测方法,其特征在是:判断随机进程代数模型是否具有EQ性采用如下的方法:模型的动作矩阵的列向量要求与模型的转移一一对应;检测动作矩阵任意两列所含的负1的位置是否满足要么完全不同要么完全相同;如果这个特性能够满足,则模型具有EQ性;否则,就不具备EQ性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310436849.9A CN103473130B (zh) | 2013-09-23 | 2013-09-23 | 一种基于随机进程代数的并发系统死锁检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310436849.9A CN103473130B (zh) | 2013-09-23 | 2013-09-23 | 一种基于随机进程代数的并发系统死锁检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473130A CN103473130A (zh) | 2013-12-25 |
CN103473130B true CN103473130B (zh) | 2016-07-06 |
Family
ID=49797999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310436849.9A Expired - Fee Related CN103473130B (zh) | 2013-09-23 | 2013-09-23 | 一种基于随机进程代数的并发系统死锁检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473130B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148817A (zh) * | 2010-12-08 | 2011-08-10 | 华为技术有限公司 | 配置网络设备的方法、客户端、服务器端及网络系统 |
EP2402229A1 (en) * | 2010-06-22 | 2012-01-04 | Universität Stuttgart | Method and system for simulating, planning and/or controlling operating processes in a track guided transportation system |
CN102354289A (zh) * | 2011-09-21 | 2012-02-15 | 苏州大学 | 一种并发事务的调度方法和相关装置 |
CN103064729A (zh) * | 2012-12-19 | 2013-04-24 | 上海西本网络科技有限公司 | 对共享资源的加锁、控制方法和装置 |
-
2013
- 2013-09-23 CN CN201310436849.9A patent/CN103473130B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2402229A1 (en) * | 2010-06-22 | 2012-01-04 | Universität Stuttgart | Method and system for simulating, planning and/or controlling operating processes in a track guided transportation system |
CN102148817A (zh) * | 2010-12-08 | 2011-08-10 | 华为技术有限公司 | 配置网络设备的方法、客户端、服务器端及网络系统 |
CN102354289A (zh) * | 2011-09-21 | 2012-02-15 | 苏州大学 | 一种并发事务的调度方法和相关装置 |
CN103064729A (zh) * | 2012-12-19 | 2013-04-24 | 上海西本网络科技有限公司 | 对共享资源的加锁、控制方法和装置 |
Non-Patent Citations (1)
Title |
---|
PEPA模型的大偏差理论;周莉;《中国优秀硕士学位论文全文数据库 基础科学辑》;20140415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103473130A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Graham et al. | Stochastic simulation and Monte Carlo methods: mathematical foundations of stochastic simulation | |
Hsieh et al. | Learning neural PDE solvers with convergence guarantees | |
Lomuscio et al. | An approach to reachability analysis for feed-forward relu neural networks | |
KR102496415B1 (ko) | 양자 잡음 프로세스 분석 방법 및 장치, 디바이스, 및 저장 매체 | |
CN102007459A (zh) | 用于储层开发计划的鲁棒性基于优化的决策支持工具 | |
US10339459B2 (en) | System and method for rapid and robust uncertainty management during multidisciplinary analysis | |
Craiu et al. | Inference based on the EM algorithm for the competing risks model with masked causes of failure | |
Liu et al. | On the conditional distributions and the efficient simulations of exponential integrals of Gaussian random fields | |
Matarazzo et al. | Sensitivity metrics for maximum likelihood system identification | |
Tappler et al. | Automata learning meets shielding | |
US10339458B2 (en) | System and method for rapid and robust uncertainty management during multidisciplinary analysis | |
Bonilla et al. | Complexity measure for engineering systems incorporating system states and behavior | |
Soares et al. | Structural analysis for static and dynamic models | |
CN103473130B (zh) | 一种基于随机进程代数的并发系统死锁检测方法 | |
Saadawi et al. | Verification of real-time DEVS models | |
Gallois et al. | Qualitative simulation and validation of complex hybrid systems | |
Krings et al. | Proof assisted symbolic model checking for B and Event-B | |
Xiao et al. | Analysis of reliability experiments with blocking | |
Richter | Reliability estimation using unscented transformation | |
EP3607362A1 (en) | Method of characterising a subsurface volume | |
Trần et al. | Uncertainty multimode failure and shakedown analysis of shells | |
Krivitsky et al. | Exponential Random Graph Models (ERGMs) using statnet | |
Wang et al. | Reliability analysis and design considering disjointed active failure regions | |
Kitchen et al. | A Markov chain Monte Carlo sampler for mixed Boolean/integer constraints | |
Zakharova et al. | Methods for Construction and Research Stereometric Visual Images of Multi-criteria Alternatives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160706 Termination date: 20190923 |
|
CF01 | Termination of patent right due to non-payment of annual fee |