CN111221658B - 系统死锁的检测方法及系统 - Google Patents

系统死锁的检测方法及系统 Download PDF

Info

Publication number
CN111221658B
CN111221658B CN201910474312.9A CN201910474312A CN111221658B CN 111221658 B CN111221658 B CN 111221658B CN 201910474312 A CN201910474312 A CN 201910474312A CN 111221658 B CN111221658 B CN 111221658B
Authority
CN
China
Prior art keywords
data
model
module
deadlock
lock
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
Application number
CN201910474312.9A
Other languages
English (en)
Other versions
CN111221658A (zh
Inventor
郭绍翠
杨旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yantai Vocational College
Original Assignee
Yantai Vocational College
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yantai Vocational College filed Critical Yantai Vocational College
Priority to CN201910474312.9A priority Critical patent/CN111221658B/zh
Publication of CN111221658A publication Critical patent/CN111221658A/zh
Application granted granted Critical
Publication of CN111221658B publication Critical patent/CN111221658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种系统死锁的检测方法及系统,包括:获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;根据所述读锁写锁数据和所述抑制死锁数据,对每一所述线程构建一线程解锁模型全局读弧模型;处理所述线程解锁模型,以得到全局读弧模型;获取预设死锁验证信息,根据所述全局读弧模型获取死锁检测数据。本发明解决了现有技术存在的死锁抑制效果较差的技术问题。

Description

系统死锁的检测方法及系统
技术领域
本发明涉及一种并发检错的方法,特别是涉及一种系统死锁的检测方法及系统。
背景技术
并发程序常常伴随着不易被检测的并发错误,像是死锁,数据竞争等。由于这些并发错误在绝大多数执行顺序下不会出现,只有在某些特定的执行顺序下才会触发这些并发错误,因此常常需要花费较大的开销才能捕捉这些错误。系统的并发与资源的共享性是并发多线程的主要特征,其目的是提高系统的效率。死锁是并发系统必须解决的问题。
综上所述,现有技术中存在死锁检测及抑制效果较差的技术问题。
发明内容
鉴于以上现有技术存在对并发死锁的抑制效果较差的技术问题,本发明的目的在于提供一种系统死锁的检测方法及系统,解决现有技术存在的对并发死锁的抑制效果较差的技术问题,一种系统死锁的检测方法,包括:获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;根据读锁写锁数据和抑制死锁数据,对每一线程构建一线程解锁全局读弧模型;处理线程解锁全局读弧模型,以得到全局读弧模型;获取预设死锁验证信息,根据全局读弧模型获取死锁检测数据。
于本发明的一实施方式中,获取读锁写锁数据和抑制死锁数据的步骤,包括:获取每一线程的站点标记数据;根据站点标记数据获取分布存储数据;处理调度序列信息和分布存储数据,以获取分布数据操作信息;分析分布数据操作信息,以得到读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据。
于本发明的一实施方式中,构建线程解锁模型的步骤,包括:分析读锁写锁数据,得到变迁数据;提取抑制死锁数据中的抑制弧设置数据和抑锁变迁转换数据;根据变迁数据、抑制弧设置数据和抑锁变迁转换数据构造线程解锁模型。
于本发明的一实施方式中,获取全局读弧模型的步骤,包括:获取化简信息;根据化简信息化简线程解锁模型,以得到线程简化模型;获取合成数据;根据所述合成数据处理线程简化模型,以得到全局读弧模型。
于本发明的一实施方式中,获取并处理死锁数据的步骤,包括:分析全局读弧模型,以得到有向弧数据;处理有向弧数据,以得到读弧数据;根据读弧数据和预设死锁验证信息判断线程间是否存在共享障碍;若是,则判定被测系统死锁;若否,则判定被测系统正常。
于本发明的一实施方式中,一种系统死锁的检测系统,包括:线程数据模块,用以获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;解锁模型构建模块,用以根据读锁写锁数据和抑制死锁数据,对每一线程构建一全局读弧模型,解锁模型构建模块与线程数据模块连接;全局模型构建模块,用以处理全局读弧模型,以得到读写状态数据,全局模型构建模块与解锁模型构建模块连接;死锁检测模块,用以获取预设死锁验证信息,根据全局读弧模型获取死锁检测数据,死锁检测模块与全局模型构建模块连接。
于本发明的一实施方式中,线程数据模块,包括:站点模块,用以获取每一线程的站点标记数据;分布数据模块,用以根据站点标记数据获取分布存储数据,分布数据模块与站点模块连接;调度序列模块,用以处理调度序列信息和分布存储数据,以获取分布数据操作信息,调度序列模块与站点模块连接,调度序列模块与分布数据模块连接;分布分析模块,用以分析分布数据操作信息,以得到读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据,分布分析模块与调度序列模块连接。
于本发明的一实施方式中,解锁模型构建模块,包括:变迁数据模块,用以分析读锁写锁数据,得到变迁数据;抑锁数据提取模块,用以提取抑制死锁数据中的抑制弧设置数据和抑锁变迁转换数据;解锁模型模块,用以根据变迁数据、抑制弧设置数据和抑锁变迁转换数据构造线程解锁模型,解锁模型模块与变迁数据模块连接,解锁模型模块与抑锁数据提取模块连接。
于本发明的一实施方式中,全局模型构建模块,包括:化简数据模块,用以获取化简信息;模型简化模块,用以根据所述化简信息化简所述线程解锁模型,以得到线程简化模型,模型简化模块与化简数据模块连接;合成数据模块,用于获取合成数据;合成模型处理模块,根据所述合成数据处理所述线程简化模型,以得到全局读弧模型,合成模型处理模块与模型简化模块连接,合成模型处理模块与合成数据模块连接。
于本发明的一实施方式中,死锁检测模块,包括:有向弧模块,用以分析全局读弧模型,以得到有向弧数据;读弧数据模块,用以处理有向弧数据,以得到读弧数据,读弧数据模块与有向弧模块连接;死锁判断模块,用以根据读弧数据和预设死锁验证信息判断线程间是否存在共享障碍,死锁判断模块与读弧数据模块连接;死锁判定模块,用以在线程间存在共享障碍时,判定被测系统死锁,死锁判定模块与死锁判断模块连接;正常判定模块,用以在线程间不存在共享障碍时,判定被测系统正常,正常判定模块与死锁判断模块连接。
如上所述,本发明目的在于提供的一种系统死锁的检测认证方法及系统克服现有技术的不足,提出一种新的分布式存储系统的死锁抑制方法。该系统通过构建检所分析模型例如读弧Petri网模型,并将抑制弧以及变迁转换引入的方法抑制并发式系统中的多线程出现死锁,同时通过对模型的合成及简化操作提高全局模型中死锁的检测效率。
综上,本发明提供一种系统死锁的检测方法及系统,解决了现有技术存在的死锁抑制效果较差以及检测效率低的技术问题。
附图说明
图1显示为本发明的系统死锁的检测方法步骤示意图。
图2显示为图1中步骤S1在一实施例中的具体流程步骤示意图。
图3显示为本发明的读弧Petri网模型示意图。
图4显示为图1中步骤S2在一实施例中的具体流程步骤示意图。
图5显示为本发明的读写锁读弧模型示意图。
图6显示为本发明的各站点的读弧Petri网模型示意图。
图7显示为本发明的同步合成网模型示意图。
图8显示为本发明的加抑制弧的读弧Petri网模型示意图。
图9显示为本发明的加转换变迁的读弧Petri网模型示意图。
图10显示为图1中步骤S3在一实施例中的具体流程步骤示意图。
图11显示为本发明的化简模型示意图。
图12显示为图1中步骤S4一实施例中的具体流程步骤示意图。
图13显示为本发明的读弧化简模型示意图。
图14显示为本发明的系统死锁的检测系统模块示意图。
图15显示为图14中线程数据模块1在一实施例中的具体模块示意图。
图16显示为图14中解锁模型构建模块2在一实施例中的具体模块示意图。
图17显示为图14中全局模型构建模块3在一实施例中的具体模块示意图。
图18显示为图14中死锁检测模块4在一实施例中的具体模块示意图。
图19显示为哲学家就餐问题的Petri网模型示意图。
图20显示为哲学家问题的公平控制器的Petri网模型示意图。
图21显示为弱同步控制机制图。
图22显示为弱同步控制运行结果示意图。
元件标号说明
1 线程数据模块
2 解锁模型构建模块
3 全局模型构建模块
4 死锁检测模块
11 站点模块
12 分布数据模块
13 调度序列模块
14 分布分析模块
21 变迁数据模块
22 抑锁数据提取模块
23 解锁模型模块
31 化简数据模块
32 模型简化模块
33 合成数据模块
34 合成模型处理模块
41 向弧模块
42 读弧数据模块
43 死锁判断模块
44 死锁判定模块
45 正常判定模块
步骤标号说明
S1~S4方法步骤
S11~S14方法步骤
S21~S23方法步骤
S31~S34方法步骤
S41~S45方法步骤
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
请参阅图1至图22,须知,本说明书所附图式所绘示的结构,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如”上”、”下”、”左”、”右”、”中间”及”一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
请参阅图1,显示为本发明的一种系统死锁的检测方法步骤示意图,如图1所示,一种系统死锁的检测方法,包括:
S1、获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据,在一实施例中,假设一分布式数据库系统在某一时刻有n个并发事务共享分布存储在m个站点上的数据资源.E=S1S2...Sm,其中Sj(j=1,2,...,m)为第j个站点上的局部调度序列,则系统按E执行后出现死锁状态,当且仅当端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0,在一实施例中,并发分布式系统可在标准经济型服务器和磁盘上提供统一的软件定义存储,将数据块、对象、文件的存储组合到一个平台,是一个可靠地、自动重均衡、自动恢复的分布式存储系统;
S2、根据读锁写锁数据和抑制死锁数据,对每一线程构建一线程解锁全局读弧模型,在本实施例中,每一线程可对应一站点,分布式并发存储系统中包含很多组件,除了核心的机头(控制器)、磁盘阵列(JBOD)和交换机等设备外,还有管理设备等辅助设备;
S3、处理线程解锁全局读弧模型,以得到全局读弧模型,在本实施例中,读弧Petri网模型可表示例如:计算机和通信系统的队列、缓冲、资源等。变迁用于描述修改系统状态的事件。例如:计算机和通信系统的信息处理、发送、资源的存取等。弧通过指向来规定局部状态和事件之间的关系。在本是实施例中,可采用监测分析模型例如Petri网模型,Petri网可包括位置(P),变迁(T),有向弧线(F),令牌(token)所构成,其中P表示状态元素,T为变化元素,有向弧线既可以由P到T,又可以由T到P,token表示一种属性。其中P,T平等。T由P来描述,P由T而变化,T引起P中资源流动,F联系P和T。Petri网可描述为:{S,T,F,M0}S:表示状态,T:表示变化条件,F:表示有向弧,M0表示令牌的初始位置,在本实施例中,并发分布式系统中的硬件设备例如服务器端及客户端存储有计算机程序,该程序被处理器执行时实现系统死锁的检测方法,实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质;
S4、获取预设死锁验证信息,根据全局读弧模型获取死锁检测数据,检所分析模型例如Petri网是模拟和分析系统并发的一种有效工具。检所分析模型例如Petri网用于描述和分析系统中的控制流和信息流,尤其是那些有异步和并发活动的系统,传统的并发系统中经常出现由于令牌冲突及变迁冲突引发的线程死锁,缺乏抑制死锁发生的方法,在一实施例中,假设系统按E执行后出现死锁状态,说明系统中此时至少存在两个以上的事务,它们由于相互拥有对方所需数据的锁而无法运行.根据检所分析模型例如PN的定义及可达标识图RMG(PN)的构造算法,此时的标识为端点标识M,由于至少存在两个以上的事务占有数据的锁,所以在端点标识M下,至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.(充分性)用反证法.端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.假设系统按E执行后不出现死锁状态,则表明系统中的所有事务均获得所需数据资源的锁,操作完毕并解除对所有数据资源的锁,系统运行结束.根据PN的定义及可达标识图RMG(PN)的构造算法,得知存在端点M∈RMG(PN),使M(pij)=0(1≤i≤n,1≤j≤m).与已知条件矛盾,在一实施例中,并发分布式系统可通过一致性哈希算法就可以确定该整数在数组的位置。而数组中的每项的内容是数据3个副本(也可以是其它副本数量)的设备信息(包含服务器和磁盘等信息)。也就是经过上述计算,可以确定一个数据存储的具体位置。
请参阅图2和图3,显示为图1中步骤S1在一实施例中的具体流程步骤示意图和读弧Petri网模型示意图,如图2和图3所示,获取读锁写锁数据和抑制死锁数据的步骤S1,包括:
S11、获取每一线程的站点标记数据,在一实施例中,线程对应模型中的站点,具体的站点数据可通过例如假设在站点j共有两个子多线程T1j与T2j,T1j申请对dk1加读锁,对dk2加写锁,T2j申请对dk1加写锁,则描述这2个子多线程共享2项数据资源的读弧Petri网模型的图形表示如图3所示,在一实施例中,客户端例如手机、平板电脑或膝上计算机使用用户名和密码请求登录。服务端收到请求,验证用户名和密码。验证成功后,服务端会生成一个token,然后把这个token发送给客户端。在本实施例中,可采用例如sessionid作为token,客户端例如:手机、膝上计算机携带用户名和密码登录,服务端:接收到用户名和密码后进行校验,正确就将本地获取的sessionid作为token返回给客户端,客户端以后只需带上请求的数据即可;
S12、根据站点标记数据获取分布存储数据,在本实施例中,假设在一分布式数据系统中有3个并发事务(T1,T2,T3)共享分布存储在3个站点上的3个数据资源(x,y,z).其中x存储在站点1上(用x1表示),y分布存储在站点,代码如下:
在一实施例中,一种系统死锁的检测设备包括处理器及存储器;存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以使系统死锁的检测设备执行系统死锁的检测方法,存储器可能包含随机存取存储器(RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(App1icationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
S13、处理调度序列信息和分布存储数据,以获取分布数据操作信息,在本实施例中,1与2上(分别用y1与y2表示),z分布存储在站点2与3上(分别用z2与z3表示)。已知全局调度E在3个站点上的调度序列如下,其中(T1,T2,T3)为并发事务,(x,y,z)表示数据资源:(1):T1请求x1的读锁,T1请求y1的写锁,T3请求x1的写锁;(2):T2请求y2的读锁,T2请求z2的写锁,T1请求y2的写锁;(3):T3请求z3的读锁,T2请求z3的写锁;
S14、分析分布数据操作信息,以得到读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据,在本实施例中,可通过例如定义3.4设读弧Petri网WPNi=(Pi,Ti;Fi,Wi,M0i),i=1,2.称WPN=(P,T;F,W,M0)是WPN1与WPN2的共享合成网(记作:WPN=WPN1 OPWPN2).其中,P,T,F,M0的构成规则同定义2.5,W的定义如下:
请参阅图4至9,显示为图1中步骤S2在一实施例中的具体流程步骤示意图、读写锁读弧模型示意图、各站点的读弧Petri网模型示意图、同步合成网模型示意图、加抑制弧的读弧Petri网模型示意图、加转换变迁的读弧Petri网模型示意图,如图4至9所示,构建线程解锁模型的步骤S2,包括:
S21、分析读锁写锁数据,得到变迁数据,在一实施例中,可通过例如定义3.1事务Ti在站点j的子事务Tij申请对数据项dk加读锁的读弧Petri网模型为一五元组:WPNijk=(P,T;F,W,M0)其中,P=(Pij,Pijrk,dk),M0(Pij)=0,M0(Pijrk)=1,M0(dk)=n(n为站点j中并发子事务的个数,下同),T=(tijrk),F={(Pijrk,tijrk),(dk,tijrk),(tijrk,Pij)},W(Pijrk,tijrk)=W(dk,tijrk)=W(tijrk,Pij)=1上述Petri网模型的图形表示如图5所示,命题3.1读弧Petri网PNj为不可重复网。证明:从定义3.1~3.3所给出的读弧Petri网模型,容易看出他们均为不可重复网,已经证明,若两个Petri网均为不可重复网,则他们的共享合成网也是不可重复网.而WAPj是由定义3.1~3.3所给出的Petri网经有限次共享合成获得,因而可以证明WAPj为不可重复网。
定义3.2事务Ti在站点j的子事务Tij申请对数据项,dk加写锁的读弧Petri网模型为一五元组:
WPNijk=(P,T;F,W,M0)
其中,P=(Pij,Pijwk,dk),M0(Pij)=0,M0(Pijwk)=1,M0(dk)=n,
T=(tijwk),F={(Pijwk,tijwk),(dk,tijwk),(tijwk,Pij)},
W(Pijwk,tijwk)=W(tijwk,Pij)}=1,W(dk,tijwk)=n},命题3.2读弧Petri网PNj的运行规则满足2PL。证明:对任一子事务Tij,由于表示解锁的变迁tiu的输入弧的权为s(即申请所加锁的数据项的个数),因此,tiu要想发生,其输入位置pij中的标记必须等于s,即Tij已获得所需的全部数据的锁(此时Pijrk与Pijw中的标记均为0).当tiu发生后(即Tij解除全部数据的锁),由于pijrk与pijwk均无输入变迁:基于Petri网合成与化简的分布式数据库系统因此tijrk与tijwk不可能再发生.这说明,任一事务的所有加锁均发生在任何解锁之前.因此WAPj的运行规则满足2PL;
定义3.3假设事务Ti在站点j的子事务Tij共申请了s项数据d1,d2,...,ds的锁(读锁及写锁),则解锁操作所对应的读弧Petri网模型为一五元组:
WPNijk=(P,T;F,W,M0)
其中,P=(Pij,d1,d2,...,ds),
T={(tiu)},F={(Pij,tiu),(tiu,d1),...,(tiu,ds)},
W(Pij,tiu)}=s,W(tiu,dk)=1(若Tij对dk加读锁)或1(若Tij对dk加写锁)(k=1,2,...,s),M0(Pij)=0,M0(d1)=M0(d2)=...=M0(ds)=1,假设事务Ti在站点j的子事务Tij申请对dk1加读锁,对dk2加写锁,则解锁过程所对应的读弧Petri网模型的图形表示如图6所示,3.2局部并发事务的死锁检测。
定理3.1设WAPj是由定义3.6所给出的读弧Petri网,Sj是站点j的局部调度序列,Uj是WAPj中与Sj所对应的变迁序列,M满足M0〔Uj>M.则系统在站点j出现局部死锁状态,当且仅当在标识M中,至少存在两个位置pij与Pkj(1≤i,k≤n且i≠k),使M(pij)与M(pkj)均大于0。证明:根据假设③,若系统在站点j执行调度Sj后出现局部死锁状态,当且仅当至少存在两个子事务,他们由于相互等待对方所占有的数据而无法运行,与WAPj的运行相对应,即WAPj在标识M(其中M满足M0〔Uj>M)中,至少存在两个位置pij与Pkj(1≤i,k≤n且i≠k),使M(pij)与M(pkj)均大于0。当某一站点检测出死锁时,系统必定处于死锁状态,则可通过夭折并重新启动与死锁有关的事务来解除死锁.若所有单个站点均检测不出死锁,并不能保证整个系统不出现死锁状态,必须综合各站点情况,检测全局并发事务是否出现死锁.在以下全局并发事务的死锁检测中,假定所有单个站点均不出现死锁。
S22、提取抑制死锁数据中的抑制弧设置数据和抑锁变迁转换数据,在本实施例中,可采用例如在读弧Petri网模型中加抑制弧实现同步,以消除并发线程的死锁,或在读弧Petri网模型中加互相转换变迁,即一个库所中已经有两个令牌token,则经过变迁进入与该库所同步的相对应库所中;
S23、根据变迁数据、抑制弧设置数据和抑锁变迁转换数据构造线程解锁模型,在本实施例中,首先根据定义3.1、3.2与3.3构造上述调度序列中的8种读、写锁操作及T1、T2、T3的解锁操作所对应的读弧Petri网模型,然后再根据定义3.5与定义3.6通过共享合成构造3个站点所对应的读弧Petri网模型。
请参阅图5、图6、图10及图11,显示为图1中步骤S3在一实施例中的具体流程步骤示意图、化简模型示意图、读写锁读弧模型示意图和各站点的读弧Petri网模型示意图,如图5、图6、图10和11所示,获取全局读弧模型的步骤S3,包括:
S31、获取化简信息,在一实施例中,各站点并发子事务共享数据资源的读弧Petri网模型的化简在单个站点并发子事务调度的死锁检测中,我们假定该站点中任一子事务,只要获得在该站点所需数据的锁,即可运行结束并释放其占有的锁.但若从全局考虑,由于在分布式数据库系统中,数据可能分布存储在多个站点,对于任一事务,只有其各站点上的子事务均获得在该站点所需数据的锁,该事务才能运行结束并释放其占有的锁.因此,若从全局考虑,各站点并发子事务的调度序列中,只考虑加锁而不考虑解锁的操作,这样,在执行完局部调度后,系统在各站点的状态为有的子事务已获得所需全部数据的锁,有的子事务在等待其他子事务占有的数据的锁,这对应在读弧Petri网模型WAPj的当前状态中,即pij中的标记数或等于sj,或小于sj,若小于sj,它在等待哪一个子事务释放资源.因此,在构造全局Petri网模型时,只关心对应子事务的位置pij,对应解锁的变迁tiu,以及当tiu发生后,pij中的标记流向哪些位置.这就有必要对各站点读弧Petri网模型进行化简;
S32、根据化简信息化简线程解锁模型,以得到线程简化模型,在一实施例中,通过例如以下定义3.5假设多线程Ti在站点j的子多线程Tij申请对s项数据d1,d2,...,ds加锁(读锁及写锁),则Tij对数据资源的加锁与解锁序列所对应的读弧Petri网模型WPNij为WPNijk
(k=1,2,...,s)与WPNiju的共享合成网:
WPNij=WPNij1OpWPNij2OP...OPWPNijsOpWPNiju
假设多线程Ti在站点j的子多线程Tij申请对dk2加读锁,对dk2加写锁,则Tij对数据资源的加锁与解锁序列所对应的读弧Petri网模型的图形表示如图5所示;
S33、获取合成数据;
S34、根据合成数据处理线程简化模型,以得到简化合成模型,在一实施例中,通过例如以下定义3.6假设在站点j有n个子多线程T1j,T2j,...,Tnj共享m项数据资源d1,d2,...,dm,则描述这n个子多线程共享m项数据资源的读弧Petri网模型WPNj为WPNij(i=1,2,...,n)的共享合成网:WPNj=WPN1jOpWPN2jOp...OpWPNnj
请参阅图12、13,显示为图1中步骤S4一实施例中的具体流程步骤示意图、读弧化简模型示意图,如图12、13所示,获取并处理死锁数据的步骤S4,包括:
S41、分析全局读弧模型,以得到有向弧数据;
S42、处理有向弧数据,以得到读弧数据;
S43、根据读弧数据和预设死锁验证信息判断线程间是否存在共享障碍,在一实施例中,可采用例如定义4.1在站点j中,Petri网模型PNj=(Pj,Tj;Fj,M0j)是由WAPj化简后获得.其中,位置Pj={pij|(i=1,2,...,n)},变迁Tj={tiu|(i=1,2,...,n)},Fj={(pij,tiu)|i=1,2,...,n}∪{(tiu,pkj)若第k个子事务申请第i个子事务占有的数据的锁,1≤i,k≤n且i≠k},所有弧的权均为1,初始标识M0j根据站点j中n个并发子事务执行完加锁操作后的WAPj的状态M确定:
(sij为第i个子事务在站点j需加锁的数据个数)例如,假设Petri网按调度序列″T1j申请对dk1加读锁→T2j申请对dk1加写锁→T1申请对dk2加写锁″执行,则执行完这一调度序列后,图3所示的读弧Petri网模型化简后的Petri网模型如图11所示,定理4.1假设一分布式数据库系统在某一时刻有n个并发事务共享分布存储在m个站点上的数据资源.E=S1S2...Sm,其中Sj(j=1,2,...,m)为第j个站点上的局部调度序列.Petri网PN由定义4.2给出.则系统按E执行后出现死锁状态,当且仅当端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0。证明:(必要性)假设系统按E执行后出现死锁状态,说明系统中此时至少存在两个以上的事务,它们由于相互拥有对方所需数据的锁而无法运行.根据PN的定义及可达标识图RMG(PN)的构造算法,此时的标识为端点标识M,由于至少存在两个以上的事务占有数据的锁,所以在端点标识M下,至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.(充分性)用反证法.端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.假设系统按E执行后不出现死锁状态,则表明系统中的所有事务均获得所需数据资源的锁,操作完毕并解除对所有数据资源的锁,系统运行结束.根据PN的定义及可达标识图RMG(PN)的构造算法,得知存在端点M∈RMG(PN),使M(pij)=0(1≤i≤n,1≤j≤m).与已知条件矛盾,得证;
S44、若是,则判定被测系统死锁,在一实施例中,点M0=(1,0,1,0,1,0)且M0为端点.由于M0(p11)=M0(p22)=M0(p33)=1>0,根据前述定理4.1,得知所给系统按调度E执行后会出现全局死锁状态;
S45、若否,则判定被测系统正常,在一实施例中,该被测系统例如分布式存储系统不存在全局死锁。
请参阅图14,显示为本发明的系统死锁的检测系统模块示意图,如图14所示,一种系统死锁的检测系统包括,线程数据模块1,用以获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据,在一实施例中,假设一分布式数据库系统在某一时刻有n个并发事务共享分布存储在m个站点上的数据资源.E=S1S2...Sm,其中Sj(j=1,2,...,m)为第j个站点上的局部调度序列.Petri网PN,则系统按E执行后出现死锁状态,当且仅当端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0,在本实施例中,每一线程可对应一站点,分布式并发存储系统中包含很多组件,除了核心的机头(控制器)、磁盘阵列(JBOD)和交换机等设备外,还有管理设备等辅助设备;解锁模型构建模块2,用以根据读锁写锁数据和抑制死锁数据,对每一线程构建一全局读弧模型,解锁模型构建模块1与线程数据模块2连接,在本实施例中,每一线程可对应一站点,分布式并发存储系统中包含很多组件,除了核心的机头(控制器)、磁盘阵列(JBOD)和交换机等设备外,还有管理设备等辅助设备;全局模型构建模块3,用以处理全局读弧模型,以得到读写状态数据,全局模型构建模块3与解锁模型构建模块2连接,在本实施例中,读弧Petri网模型可表示例如:计算机和通信系统的队列、缓冲、资源等。变迁用于描述修改系统状态的事件。例如:计算机和通信系统的信息处理、发送、资源的存取等。弧通过指向来规定局部状态和事件之间的关系,在本实施例中,并发分布式系统中的硬件设备例如服务器端及客户端存储有计算机程序,该程序被处理器执行时实现系统死锁的检测方法,实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质;死锁检测模块4,用以获取预设死锁验证信息,根据读写状态数据获取死锁检测数据,死锁检测模块4与全局模型构建模块3连接,在一实施例中,假设系统按E执行后出现死锁状态,说明系统中此时至少存在两个以上的事务,它们由于相互拥有对方所需数据的锁而无法运行.根据PN的定义及可达标识图RMG(PN)的构造算法,此时的标识为端点标识M,由于至少存在两个以上的事务占有数据的锁,所以在端点标识M下,至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.(充分性)用反证法.端点M∈RMG(PN),至少存在两个位置pij与pkr(1≤i,k≤n且i≠k,1≤j,r≤m),使M(pij)与M(pkr)均大于0.假设系统按E执行后不出现死锁状态,则表明系统中的所有事务均获得所需数据资源的锁,操作完毕并解除对所有数据资源的锁,系统运行结束.根据PN的定义及可达标识图RMG(PN)的构造算法,得知存在端点M∈RMG(PN),使M(pij)=0(1≤i≤n,1≤j≤m).与已知条件矛盾,在一实施例中,并发分布式系统可通过一致性哈希算法就可以确定该整数在数组的位置。而数组中的每项内容是数据3个副本(也可以是其它副本数量)的设备信息(包含服务器和磁盘等信息)。也就是经过上述计算,可以确定一个数据存储的具体位置。
请参阅图15,显示为图14中线程数据模块1在一实施例中的具体模块示意图,如图15所示,线程数据模块1包括站点模块11、分布数据模块12、调度序列模块13和分布分析模块14,站点模块11,用以获取每一线程的站点标记数据。在本实施例中,可采用例如sessionid作为token,客户端例如:手机、膝上计算机携带用户名和密码登录,服务端:接收到用户名和密码后进行校验,正确就将本地获取的sessionid作为token返回给客户端,客户端以后只需带上请求的数据即可;分布数据模块12,用以根据站点标记数据获取分布存储数据,分布数据模块12与站点模块11连接,在一实施例中,一种系统死锁的检测设备包括处理器及存储器;存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以使系统死锁的检测设备执行系统死锁的检测方法,存储器可能包含随机存取存储器(RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;调度序列模块13,用以处理调度序列信息和分布存储数据,以获取分布数据操作信息,调度序列模块13与站点模11块连接,调度序列模块13与分布数据模块12连接以获取分布数据操作信息,在本实施例中,1与2上(分别用y1与y2表示),z分布存储在站点2与3上(分别用z2与z3表示);分布分析模块14,用以分析分布数据操作信息,以得到读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据,分布分析模块14与调度序列模块13连接,在本实施例中,可通过例如定义3.4设读弧Petri网WPNi=(Pi,Ti;Fi,Wi,M0i),i=1,2.称WPN=(P,T;F,W,M0)是WPN1与WPN2的共享合成网(记作:WPN=WPN1 OPWPN2),在本实施例中,定义2.1WPN=(P,T;F,W,M0)称为读弧Petri网(Read-arc Petri Net),iff(1)(P,T;F)是一个网;(2)W:(P×T)→0为读弧;(3)M0:P→N0(N0为非负整数集)为初始标识.
定义2.2设WPN=(P,T;F,W,M0)为读弧Petri网.对于t∈T,M是PN当前的标识.称变迁t在M下是使能的,当且仅当t的所有输入位置p中的标记数大于或等于弧P×厂的权函数值。即:
p∈t,有:M(p)≥W(p,t).
若变迁t在M下是使能的,则t可以引发,从M引发t后,得到新的标识M’:
并记为M〔t>M’,称M’是从M直接可达的。
定义2.3在PN中,若存在标识序列M0,M1,...,Mk,使得:1≤i≤k,ti∈T,:Mi-1[ti>Mi
则称变迁节序列U=t1,t2,...,tk为从M0可引发的,记为:M0[U>Mk.并称Mk为从M0可达的。所有从M0可达的标识集记为R(M0).
定义2.4设Petri网PNi=(Pi,Ti;Fi,M0i),i=1,2.
令PN=(P,T;F,M0),使得:
(1)P=P1∪P2,P1∩P2=φ;
(2)T=T1∪T2,T1∩T2≠φ;
(3)F=F1∪F2
(4)
则称PN是PN1与PN2的同步合成网,记作:PN=PN1OTPN2.
定义2.5设Petri网PNi=(Pi,Ti;Fi,M0i),i=1,2,.令PN=(P,T;F,M0),使得:
(1)P=P1∪P2,P1∩P2=φ;
(2)T=T1∪T2,T1∩T2≠φ;
(3)F=F1∪F2
(4)
则称PN是PN1与PN2的共享合成网,记作:PN=PN1OpPN2
定义2.6如果两个操作p和q对同一数据项x进行操作,其中一个是写操作,则p和q称为冲突操作.为讨论方便,特做以下几点假设:(1)一个事务被抽象为一个加锁与解锁的序列,而忽略中间的计算过程.当一个事务对某数据项进行读操作时,首先要对该数据项加读锁(也称为共享锁),进行写操作时,首先要对该数据项加写锁(也称为排他锁).只有加锁成功,才能对数据项进行读写操作。(2)当一个事务已拥有对某数据项的锁时,不会再对同一数据项加锁.任何事务不会对它当前不拥有的锁进行解锁。(3)当一个事务获得所需全部锁时,则该事务即可运行结束或者单位时间到并释放其占有的全部锁。(4)在以下模型中,当一个事务连续解除对多项数据项的读锁与写锁时,解除写锁的时候会将读锁同时解除,解除的是读锁的时候,不能解除写锁。
请参阅图16,显示为图14中解锁模型构建模块2在一实施例中的具体模块示意图,如图16所示,解锁模型构建模块2包括变迁数据模块21、抑锁数据提取模块22、解锁模型模块23,变迁数据模块21,用以分析读锁写锁数据,得到变迁数据;抑锁数据提取模块22,用以提取抑制死锁数据中的抑制弧设置数据和抑锁变迁转换数据,在本实施例中,可采用例如在读弧Petri网模型中加抑制弧实现同步,以消除并发线程的死锁,或在读弧Petri网模型中加互相转换变迁,即一个库所中已经有两个令牌token,则经过变迁进入与该库所同步的相对应库所中;解锁模型模块23,用以根据变迁数据、抑制弧设置数据和抑锁变迁转换数据构造线程解锁模型,解锁模型模块23与变迁数据模块21连接,解锁模型模块23与抑锁数据提取模块22连接。
请参阅图17,显示为图14中全局模型构建模块3在一实施例中的具体模块示意图,如图17所示,全局模型构建模块3包括化简数据模块31、模型简化模块32、合成数据模块33、合成模型处理模块34、可达数据模块34和读写状态模块35,化简数据模块31,用以获取化简信息;模型简化模块32,用以根据所述化简信息化简所述线程解锁模型,以得到线程简化模型,模型简化模块与化简数据模块连接;合成数据模块33,用于获取合成数据;合成模型处理模块34,用以处理线程简化模型,以得到简化合成模型,合成模型处理模块34与模型简化模块32连接,合成模型模块34与合成数据模块33连接。
请参阅图18至22,显示为图14中死锁检测模块4在一实施例中的具体模块示意图、哲学家就餐问题的Petri网模型示意图、哲学家问题的公平控制器的Petri网模型示意图、弱同步控制机制图和弱同步控制运行结果示意图,如图18至22所示,死锁检测模块4包括有向弧模块41、读弧数据模块42、死锁判断模块43、死锁判定模块44和正常判定模块45,有向弧模块41,用以分析全局读弧模型,以得到有向弧数据;读弧数据模块42,用以处理有向弧数据,以得到读弧数据,读弧数据模块42与有向弧模块41连接;死锁判断模块43,用以根据读弧数据和预设死锁验证信息判断线程间是否存在共享障碍,死锁判断模块43与读弧数据模块42连接;死锁判定模块44,用以在线程间存在共享障碍时,判定被测系统死锁,死锁判定模块44与死锁判断模块43连接,在一实施例中,点M0=(1,0,1,0,1,0)且M0为端点.由于M0(p11)=M0(p22)=M0(p33)=1>0,根据前述定理4.1,得知所给系统按调度E执行后会出现全局死锁状态;正常判定模块45,用以在线程间不存在共享障碍时,判定被测系统正常,正常判定模块45与死锁判断模块43连接,图19中五位哲学家就餐的Petri网模型,这里库所Ci(i=1,…,5)表示五根筷子,每相邻的两个哲学家之间有一根筷子;库所Hi(i=1,…,5)中的一个token表示第i个哲学家处于思考状态,库所Ei(I=1,…,5)中的一个token表示第i个哲学家处于吃饭状态。从模型PN中可以看出,当哲学家要吃饭时,他必须具有他左右两边的筷子,这样他的相邻哲学家此时就不能进入吃饭的状态。哲学家就餐问题的Petri网模型不时公平的,这个网模型必须施加控制约束其非公平行为。利用图20实现了公平性控制。但这种公平性,我们认为是同步控制,或者称之为强同步,提出一种弱同步,每位哲学家就餐次数Numi,不能超过任何一位哲学家就餐次数Numj的n次,即|Numi-Numj|<=n,其中n为正整数。我们的控制部分实现如图21,控制部分结果如图22。
综上所述,系统的并发行与资源的共享性是并发多线程的主要特征,其目的是提高系统的效率。死锁是并发系统必须解决的问题。Petri网作为模拟和分析系统并发的一种有效工具,本文提出基于petri网的模型,基于合成和化简进行并发控制,有效进行死锁检测,本发明提供的一种系统死锁的检测方法及系统,具有以下有益效果:本发明目的在于提供的一种系统死锁的检测认证方法及系统,通过获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;根据读锁写锁数据和抑制死锁数据,对每一线程构建一全局读弧模型并简化合成为全局的读弧Petri网模型,以抑制死锁发生并检测死锁,克服现有技术的不足,提出一种新的分布式存储系统的死锁抑制方法。该系统通过构建读弧Petri网模型并将抑制弧以及变迁转换引入的方法抑制并发式系统中的多线程出现死锁,同时通过对模型的合成及简化操作提高全局模型中死锁的检测效率。
综上,本发明提供一种系统死锁的检测方法及系统,解决了现有技术存在的死锁抑制效果较差以及检测效率低的技术问题,具有很高的商业价值和实用性。

Claims (10)

1.一种系统死锁的检测方法,其特征在于,包括:
获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;
根据所述读锁写锁数据和所述抑制死锁数据,对每一所述线程构建一线程解锁模型;
处理所述线程解锁模型,以得到全局读弧模型;
获取预设死锁验证信息,根据所述全局读弧模型获取死锁检测数据。
2.根据权利要求1所述的方法,其特征在于,所述获取读锁写锁数据和抑制死锁数据的步骤,包括:
获取每一所述线程的站点标记数据;
根据所述站点标记数据获取分布存储数据;
处理所述调度序列信息和所述分布存储数据,以获取分布数据操作信息;
分析所述分布数据操作信息,以得到所述读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据。
3.根据权利要求1或2所述的方法,其特征在于,构建线程解锁模型的步骤,包括:
分析所述读锁写锁数据,得到变迁数据;
提取所述抑制死锁数据中的抑制弧设置数据和抑锁变迁转换数据;
根据所述变迁数据、所述抑制弧设置数据和所述抑锁变迁转换数据构造所述线程解锁模型。
4.根据权利要求1所述的方法,其特征在于,获取全局读弧模型的步骤,包括:
获取化简信息;
根据所述化简信息化简所述线程解锁模型,以得到线程简化模型;
获取合成数据;
根据所述合成数据处理所述线程简化模型,以得到全局读弧模型。
5.根据权利要求1所述的方法,其特征在于,所述获取并处理死锁数据的步骤,包括:
分析所述全局读弧模型,以得到有向弧数据;
处理所述有向弧数据,以得到读弧数据;
根据所述读弧数据和所述预设死锁验证信息判断所述线程间是否存在共享障碍;
若是,则判定被测系统死锁;
若否,则判定所述被测系统正常。
6.一种系统死锁的检测系统,其特征在于,包括:
线程数据模块,用以获取多个线程的并发资源数据和调度序列信息,据以获取读锁写锁数据和抑制死锁数据;
解锁模型构建模块,用以根据所述读锁写锁数据和所述抑制死锁数据,对每一所述线程构建一线程解锁模型全局读弧模型;
全局模型构建模块,用以处理所述线程解锁模型,以得到全局读弧模型;
死锁检测模块,用以获取预设死锁验证信息,根据所述全局读弧模型获取死锁检测数据。
7.根据权利要求6所述的系统,其特征在于,所述线程数据模块,包括:
站点模块,用以获取每一所述线程的站点标记数据;
分布数据模块,用以根据所述站点标记数据获取分布存储数据;
调度序列模块,用以处理所述调度序列信息和所述分布存储数据,以获取分布数据操作信息;
分布分析模块,用以分析所述分布数据操作信息,以得到所述读锁写锁数据、抑制弧设置数据和抑锁变迁转换数据。
8.根据权利要求6或7所述的系统,其特征在于,所述解锁模型构建模块,包括:
变迁数据模块,用以分析所述读锁写锁数据,得到变迁数据;
抑锁数据提取模块,用以提取所述抑制死锁数据中的所述抑制弧设置数据和所述抑锁变迁转换数据;
解锁模型模块,用以根据所述变迁数据、所述抑制弧设置数据和所述抑锁变迁转换数据构造所述线程解锁模型。
9.根据权利要求6所述的系统,其特征在于,所述全局模型构建模块,包括:
化简数据模块,用以获取化简信息;
模型简化模块,用以根据所述化简信息化简所述线程解锁模型,以得到线程简化模型;
合成数据模块,用于获取合成数据;
合成模型处理模块,用以根据所述合成数据处理所述线程简化模型,以得到全局读弧模型,合成模型处理模块与模型简化模块连接,合成模型处理模块与合成数据模块连接。
10.根据权利要求6所述的系统,其特征在于,所述死锁检测模块,包括:
有向弧模块,用以分析所述全局读弧模型,以得到有向弧数据;
读弧数据模块,用以处理所述有向弧数据,以得到读弧数据;
死锁判断模块,用以根据所述读弧数据和所述预设死锁验证信息判断所述线程间是否存在共享障碍;
死锁判定模块,用以在所述线程间存在共享障碍时,判定被测系统死锁;
正常判定模块,用以在所述线程间不存在共享障碍时,判定所述被测系统正常。
CN201910474312.9A 2019-05-31 2019-05-31 系统死锁的检测方法及系统 Active CN111221658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910474312.9A CN111221658B (zh) 2019-05-31 2019-05-31 系统死锁的检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910474312.9A CN111221658B (zh) 2019-05-31 2019-05-31 系统死锁的检测方法及系统

Publications (2)

Publication Number Publication Date
CN111221658A CN111221658A (zh) 2020-06-02
CN111221658B true CN111221658B (zh) 2023-08-01

Family

ID=70830640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910474312.9A Active CN111221658B (zh) 2019-05-31 2019-05-31 系统死锁的检测方法及系统

Country Status (1)

Country Link
CN (1) CN111221658B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576830A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 数据库事务锁机制的死锁检测方法及装置
CN104156262A (zh) * 2014-08-08 2014-11-19 浙江工商大学 一种基于Petri网MIP法的并发程序死锁检测方法
CN104461871A (zh) * 2014-11-18 2015-03-25 合肥康捷信息科技有限公司 一种基于petri网的死锁检测方法
CN106227163A (zh) * 2016-07-15 2016-12-14 中国电子科技集团公司第二十八研究所 基于Petri网和模拟退火的装备制造系统无死锁调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7823150B2 (en) * 2005-01-25 2010-10-26 International Business Machines Corporation Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576830A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 数据库事务锁机制的死锁检测方法及装置
CN104156262A (zh) * 2014-08-08 2014-11-19 浙江工商大学 一种基于Petri网MIP法的并发程序死锁检测方法
CN104461871A (zh) * 2014-11-18 2015-03-25 合肥康捷信息科技有限公司 一种基于petri网的死锁检测方法
CN106227163A (zh) * 2016-07-15 2016-12-14 中国电子科技集团公司第二十八研究所 基于Petri网和模拟退火的装备制造系统无死锁调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Petri网合成与化简的分布式数据库系统并发控制的死锁检测;韩耀军等;小型微型计算机系统(第05期);37-42 *

Also Published As

Publication number Publication date
CN111221658A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
US8868604B2 (en) Methods and apparatus for implementing Semi-distributed Lock Management
AU2016244128B2 (en) Processing database transactions in a distributed computing system
US7735089B2 (en) Method and system for deadlock detection in a distributed environment
CN105511969B (zh) 一种跨进程的线程间进行互斥的方法
WO2016145909A1 (zh) 一种并发控制方法及装置
US20070067770A1 (en) System and method for reduced overhead in multithreaded programs
US11080261B2 (en) Hybrid concurrency control
CN113239098B (zh) 一种数据管理方法、计算机及可读存储介质
CN102929711B (zh) 一种软件实时事务内存的实现方法
CN103020003A (zh) 面向多核程序确定性重演的内存竞争记录装置及其控制方法
US8370317B2 (en) Synchronizing shared resources in a collection
US20070078852A1 (en) Synchronizing shared resources in a collection
CN111221658B (zh) 系统死锁的检测方法及系统
US20080082533A1 (en) Persistent locks/resources for concurrency control
US20050198005A1 (en) Systems and methods for controlling access to an object
CN114461409A (zh) 一种互斥信号量异常阻塞辅助分析方法、系统及存储介质
Tang et al. An efficient deadlock prevention approach for service oriented transaction processing
KR100596394B1 (ko) 유닉스 시스템에서 이중화된 공유메모리 접근 제어 방법및 장치
Han et al. A study of concurrency control in Web-based distributed real-time database system using extended time Petri nets
CN118069383A (zh) 一种死锁检测方法及相关装置
Kim et al. Advanced transaction scheduling protocol for multilevel secure database in wireless mobile network environment
Buchmann et al. Distributed, object-oriented, active, real-time DBMSS: we want it all-do we need them (at) all?
Vee et al. Meeting challenges of container port operations for the next millennium
Jayakumar et al. A backup mechanism with concurrency control for multilevel secure distributed database systems
CN115048220A (zh) 动态数据竞争检测方法、装置、终端及存储介质

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