CN1539105A - 用于死锁检测的牺牲选择 - Google Patents

用于死锁检测的牺牲选择 Download PDF

Info

Publication number
CN1539105A
CN1539105A CNA028152808A CN02815280A CN1539105A CN 1539105 A CN1539105 A CN 1539105A CN A028152808 A CNA028152808 A CN A028152808A CN 02815280 A CN02815280 A CN 02815280A CN 1539105 A CN1539105 A CN 1539105A
Authority
CN
China
Prior art keywords
candidate target
candidate
resource
entity
sacrifice
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.)
Pending
Application number
CNA028152808A
Other languages
English (en)
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN1539105A publication Critical patent/CN1539105A/zh
Pending legal-status Critical Current

Links

Images

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

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)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

本发明描述了一种机制和系统,在死锁的情况下,这种机制和系统能够释放被占有的资源,或者在检测到一种潜在的死锁存在时延迟资源请求。该项技术涉及到用于选择候选对象的三个步骤的算法,其中,候选对象是指一个占有实体或被使用的资源;该算法的三个步骤如下:(1)确定设置有‘CAN-BE-VICTIM(能-是-牺牲)’标记的候选对象子集;(2)如果步骤1得到的候选对象子集中有多于一个的候选对象,则处理该子集,基于某一类型的资源优先级确定第二候选对象子集;(3)如果步骤2得到的候选对象子集中有多于一个的候选对象,则处理该子集,选出运行或被占有持续时间最短的候选对象。

Description

用于死锁检测的牺牲选择
技术领域
本发明涉及分布式计算机系统,尤其涉及检测到死锁或潜在死锁时的牺牲选择。
背景技术
在计算中长期存在的挑战之一是处理死锁问题。如果存在一组实体,此组中的每个实体都在等候此组中的另一实体释放所占有的至少一种资源,这时死锁就会发生。能够占有一种资源的实体在这里称为占有实体(possessory entity)。例如,在数据库系统环境下,其中实体包括进程和事务,事务是指工作的基本单位。
例如,事务T1试图独占资源R1和R2。如果R1可用,但R2目前为另一事务T2所独占,那么事务T1可以独占R1但必须等候R2可用。如果事务T2试图占有R1,且T2暂缓等候R1而不释放R2,死锁将会发生。因为T1和T2都在等候对方,以致于双方都被锁死。
计算机系统利用多种死锁处理机制(死锁处理程序)检测死锁。解决死锁的过程包括首先确定是否存在死锁,其次确定如何解决死锁。几种处理死锁的技术包括等待图技术(wait-for graph technique)和超时技术(time-out technique)。
等待图技术基于“循环(cycle)”检测死锁。具体而言,在进程请求资源,或等候资源超过阈值期限之后,可以生成并检查用于所有循环的等待图。如果识别出所有循环,那么死锁检测机制识别出潜在的死锁。然后选取是部分死锁循环的资源用于解决死锁。因为占有或正在请求资源的实体在采取措施解决死锁时将通常蒙受性能损失,所以如此选出的资源此处称为“牺牲资源(victimresource)”。同样,占有或正在请求牺牲资源的实体此处称为“牺牲实体”。在本文中所用的名词“牺牲”指的是牺牲资源或牺牲实体。
通常,在循环内,牺牲资源是一种请求造成死锁的实体所持有的资源。解决死锁的一种方式是释放对牺牲资源的锁定。可以多种方式释放对牺牲资源的锁定。例如,当牺牲实体是事务时,把造成死锁情形的资源请求的取消和造成事务所持有的资源释放的回滚(rollback)结合起来。然后事务可以试图重新获得资源并重新执行回滚的步骤。步骤的重新执行可自动完成或基于客户输入启动。
等待图是一种说明哪些实体占有资源、哪些实体正在等候资源的图表。在附图中,术语“等待(WAITING)”表示实体处于等待资源的“等待状态”,所以实体没有“运行(RUNNING)”。等待图的例子如图1a和1b中所示。图1a描述了下面的情况:
1)实体110占有资源R1;
2)实体120占有资源R2且需要资源R1。因此实体120排在实体110之后,并进入等待状态,等待实体110完成使用资源R1;
3)实体130占有资源R3且需要资源R2。因此实体130排在实体120之后,并进入等待状态,等待实体120完成使用资源R2;
4)实体140占有资源R4且需要资源R3。因此实体140排在实体130之后,并进入等待状态,等待实体130完成使用资源R3;
5)实体150占有资源R5且需要资源R4;因此实体150排在实体140之后,并进入等待状态,等待实体140完成使用资源R4;
6)实体160没有资源,但它需要资源R5;因为实体150已经占有资源R5,所以实体160排在实体150之后,并进入等待状态,等待实体150完成使用资源R5;
7)实体110也需要资源R5;实体160已经在等待资源R5;因此实体110排在实体160之后,并进入等待状态,等待实体160完成使用资源R5;
描述等待图的另一种方式是用节点来表示资源,箭头表示占有实体。在图1b中,R1、R2、R3、R4、R5、R6、R7、R8表示资源,箭头E1、E2、E3、E4、E5、E6、E7、E8表示占有实体。箭头起点表示占有实体正在持有的资源,箭头末端表示占有实体正在请求的资源。所以,在图1b中:
1)实体E1持有R1,正在请求R2;
2)实体E2持有R2,正在请求R3;
3)实体E3持有R3,正在请求R4;
4)实体E4持有R4,正在请求R1和R5;
5)实体E5持有R5,正在请求R6;
6)实体E6持有R6,正在请求R7;
7)实体E7持有R7,正在请求R8;以及
8)实体E8持有R8,正在请求R1。
在图1a和1b中,实体和资源的循环描述了一种死锁情形。图1a和1b中的所有实体都在等待资源,但是没有一个实体愿意放弃资源以使其它实体得以进行。因此,需要采取措施打破这种循环。在图1a中,实体110是最后一个请求资源的实体,且这个请求导致了死循环,因此随意地选取实体110所占有的资源用于释放。问题在于,实体110正在持有的资源可能不是适合的释放候选对象。
在超时技术中,一旦占有实体为获得一种资源的拥有权等待了一定的阈值期间,就假定它陷入死锁。但是获得一种资源的拥有权引起的延迟原因除了死锁之外还有许多原因,所以超时技术检测死锁的精确性不高。
不幸地是,选择资源牺牲是(1)最近被请求的陷入死锁环的资源,或者(2)“超时”的实体请求的资源,可造成巨大开销。例如,在任何一种情况下,牺牲实体都可能是长期运行差不多完成的事务。在牺牲实体是事务的情况下,有必要重新执行整个事务。在能够以花费最小开销的其它方式打破死锁时,终止这样的实体是非常浪费的。
基于上述,需要提供一种用于打破检测到的死锁的更高效的方法。
发明内容
本发明描述了一种在检测到潜在死锁时选择牺牲的机制和系统。根据一个实施例,选择过程通过如下三个步骤(pass)来进行:
1)在步骤1中,从陷入死锁的候选对象集合中确定一个候选对象子集,子集中的候选对象的CAN-BE-VICTIM(能-是-牺牲)标记所设的值表明允许候选对象被选作牺牲;
2)如果步骤1得到的候选对象子集中的候选对象多于一个,那么在步骤2处理该子集,基于与资源类型相关的资源优先级确定第二候选对象子集;以及
3)如果步骤2得到的候选对象子集中的候选对象多于一个,那么处理该子集,选出一直在运行或占有最短时间的候选对象。
附图说明
本发明通过例子进行说明,而非出于限制目的,在附图中,相同标号指相同部分,其中:
图1a是描述等待图的框图;
图1b是描述等待图的框图;以及
图2是能够执行本发明的实施例的计算机系统的框图。
具体实施方式
本发明描述了一种用于响应检测到死锁或潜在死锁而选择牺牲的方法和装置。在下面的描述中,出于解释目的,为了彻底地理解本发明,阐明了许多具体细节。然而,对于本领域技术人员来说显而易见地是,即使没有这些具体细节也可以实施本发明。在其它例子中,为了避免对本发明造成不必要的模糊,公知结构和设备以框图的形式显示。
功能概述
本发明描述了一种在检测到潜在死锁时选择牺牲的机制和系统。资源可能不是在响应检测到由于几种原因造成死锁时所选出的牺牲资源的适合的候选对象。例如,占有资源的占有实体可以是高优先级进程或事务,需要尽可能快地完成。选择由这种实体占有的资源作为死锁的牺牲资源会造成占有实体遭受难以接受的损失。同样,当占有资源的占有实体已经运行了很长时间时,这种资源可能不是适合的牺牲资源。
为了解决这些问题,本发明提供了用来在多个陷入死锁的候选对象中选出一个候选对象作为“牺牲”来解决死锁的技术。这种技术包括基于一个或多个因素选出牺牲,这些因素可包括:
1)与每一候选对象相关的牺牲指示器的值,它表示被占有的资源是否可能被释放或被请求的资源是否可能被延迟;
2)分配给资源的类别和/或优先级;以及
3)占有实体运行的或资源被占有的时间长度。
一旦选出了牺牲,可使用多种技术解决死锁问题。例如,其中一项技术包括回滚占有被选作牺牲资源的资源的实体。其它技术包括使对牺牲资源的请求失败并延迟对牺牲资源的请求。虽然各种死锁解决技术可以和此处描述的牺牲选择技术一起使用,但本发明不限于在选出牺牲的情况下解决死锁的任何特定技术。
CAN-BE-VICTIM(能-是-牺牲)标记
在下面描述的实施例中,牺牲选择操作的第一个步骤基于CAN-BE-VICTIM(能-是-牺牲)标记是否被设置为“真”或“假”。一个候选对象的CAN-BE-VICTIM(能-是-牺牲)标记的值表示这个候选对象是否被允许选作牺牲。这个CAN-BE-VICTIM(能-是-牺牲)标记可以用多种方式设置。例如,CAN-BE-VICTIM(能-是-牺牲)标记的值可以由用户或装置来设置,或基于服务策略来设置,在基于服务策略的情况下,用户和装置与服务策略进行协商。此外,其中CAN-BE-VICTIM(能-是-牺牲)标记可与进程、事务、或资源相关联。这些设置CAN-BE-VICTIM(能-是-牺牲)标记的方式列表和与CAN-BE-VICTIM(能-是-牺牲)标记关联的实体类型不被规定为排它性的列表。
资源优先级
有几种用于计算资源优先级的技术。例如,资源优先级可以是应用开始时分配的静态数值,或者可以是在资源生命期中随资源使用和占有资源的占有实体的状态变化的动态数值。在使用静态和动态优先级的实施例中,资源的动态优先级值可以加到资源的静态优先级值上,以产生复合优先级。
在一个实施例中,静态优先级可基于资源对于应用的功能意义分配给资源的数值来确定。
被占有资源的动态优先级可通过计算对该资源的争用量来确定。例如,争用量可以是游值,最始设置为某一事先确定的值,当资源的存取模式高于阀值时,争用量增加。同样,当资源的存取模式低于阀值时,争用量减少。阀值可以相同,也可以不同。而且,可以有几个阀值,其中每一阀值与争用量增加或减少的不同数量相关。
而且,资源的动态优先级可通过查看所有已经被它的占有实体占有或潜在占有的资源来确定。例如,占有实体所占有的资源的动态优先级可以通过对占有实体所占有的所有资源的动态优先级取平均来确定。这种求动态优先级的平均以得到动态优先级的方法可以用来确保牺牲资源将不属于已经占有几种高优先级资源的占有实体。
用于计算静态优先级和动态优先级的输入值可由用户或装置设置,或基于服务策略来设置,在基于服务策略的情况下,用户和装置与服务策略进行协商。这些仅仅是用于计算资源优先级的技术的几个例子。
选择牺牲的技术
根据一个实施例,使用一种三步过滤操作选出牺牲资源,如下所述:
步骤1:在第一个步骤中,从死锁图中选出设置了CAN-BE-VICTIM(能-是-牺牲)标记的资源集合。如果图中仅有一个设置有CAN-BE-VICTIM(能-是-牺牲)标记的资源,那么该资源是牺牲,否则进行步骤2。
步骤2:在第二个步骤中,把从步骤1得到的资源集合分成子集,每个子集包含具有相同优先级的资源。另一种方法是,从步骤1得到的集合可根据优先级范围进行分割。一旦已经根据优先级对资源进行分割,选出具有最小优先级的资源子集。如果最小优先级子集仅有一种资源,那么这唯一的资源就是牺牲,否则进行步骤3。
为了解释步骤2,假设对图1b中示出的资源R1到R8执行步骤1。还假设R1、R2、R3、R4、R5、R6、R7、和R8都具有与其相关的CAN-BE-VICTIM(能-是-牺牲)标记。基于优先级方案(也就是数值、或范围),在步骤2中,在步骤1之后剩下的资源集合被分割以产生下面三个集合:
S0={R1,R5,R8}
S1={R2,R3}
S2={R4,R6,R7}
这里S0>S1>S2和“>”表示“更大优先级/优先级范围”。在这种情况中,集合S2={R4,R6,R7}将在步骤2中选出。因为所选出的集合包含多于一个的候选对象,选择过程继续进行到步骤3。
如上面所提到的,资源优先级可以是应用开始时分配给它的某一静态数值,和/或是在被占有资源生命周期中随资源使用和占有资源的占有实体的状态变化的某一动态数值。
步骤3:在步骤2后剩下的资源(也就是最小优先级集合中的资源)上执行步骤3。在步骤3中,确定集合中每一资源的占有实体的运行时间。具有最短运行时间的占有实体所占有的资源被选作牺牲。
变化
在上面所描述的实施例中,死锁牺牲是通过实施三个步骤选出的,每一个步骤基于不同因素过滤死锁牺牲候选对象集合。然而,在那些步骤中使用的步骤具体数量和具体因素因实现方式而异。例如,牺牲候选对象集合可以先基于运行时间过滤,然后基于资源优先级过滤。
同样,确定牺牲资源优先级值的技术因实现方式和用于确定占有实体运行时间的技术而异。例如,如果占有实体是进程,则进程运行的时间可通过向操作系统发出呼叫来确定。另一方面,如果占有实体是事务,获得事务的运行时间所使用的技术将取决于事务如何在所属的系统中实现。
而且,过滤可在考虑了多种具有不同权重的因素的单一步骤中进行。例如,一个步骤可基于资源优先级和运行时间过滤,其中如果其它候选对象的运行时间极大地超过具有相对高优先级资源的候选对象,后者仍然可以被选作牺牲。其它因素可包括,例如,占有实体的类型和与占有实体相关的用户的身份。
另外一种可能的技术是把这个算法应用到实体正请求资源但还没有获得那些资源的潜在死锁中。资源将如何分配的等待图可被构造和分析。如果检测到潜在死锁,此处所描述的技术可能应用于确定哪个资源请求延迟。
硬件概述
图2是框图,说明了可应用本发明的实施例的计算机系统200。计算机系统200包括用于传递信息的总线202或其它通信装置、用于处理信息的与总线202连接的处理器204。计算机系统200还包括主存储器206,例如随机访问存储器(RAM)或者其它动态存储装置,与总线202连接,用于储存信息及处理器204要执行的指令。主存储器206还可用于处理器204执行指令过程中临时变量或其他中间信息的存储。计算机系统200还包括只读存储器(ROM)208或者其他静态存储装置,与总线202连接,用于储存静态信息和处理器204的要执行的指令。存储装置210,如磁盘或光盘,和总线202连接以储存信息和指令。
计算机系统200可以经由总线202连接到显示器212,如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字键和其他键的输入装置214与总线202相连,用于传递通信信息和命令选择到处理器204。另一种用户输入装置是光标控制216,如鼠标、跟踪球、或光标方向键,用于传递方向信息和命令选择到处理器204及控制显示器212上的光标移动。这个输入设备通常在两个轴上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自由度,使装置能指定平面上的位置。
本发明涉及将计算机系统200用于选择适合的候选对象以解决死锁或潜在死锁。选择这种候选对象的指令可从诸如存储设备210的计算机可读介质读入主存储器206。通过执行包含在主存储器206中的指令序列,使处理器204执行此处所述的处理步骤。在可选实施例中,硬连线电路(hard-wired circuitry)可取代软件指令或者与软件指令结合来实施该发明。因此,本发明中的实施例将不限于硬件电路和软件的任何特定组合。
这里使用的术语“计算机可读介质”是指参与提供用于执行的指令给处理器204的任何介质。这种介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传递介质。非易失性介质举例来说包括光盘或磁盘,如存储装置210。易失性介质包括动态存储器,如主存储器206。传递介质包括同轴电缆、铜线、和光纤,包括由总线202组成的导线。传递介质还可采取声波或光波形式,例如那些在无线电波和红外线数据通信过程中产生的声波和光波。
通常的计算机可读介质举例来说包括软盘、柔性盘、活动硬盘、硬盘、磁带,或者任何其它磁性介质、CD-ROM、任何其它光介质、打孔纸、纸带、或者任何带孔的物理介质、RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存储芯片或者磁带,或者以下提到的载波、或者计算机能读的任何其他介质。
各种形式的计算机可读介质可参与传送一个或者多个指令的一个或多个序列到处理器204用以执行。例如,指令开始可传递到远程计算机的磁盘中。远程计算机能将该指令序列加载到其动态存储器中,然后通过调制解调器的电话线发送信息。计算机系统200本地的调制解调器可接收电话线上的数据,然后使用红外转换器将数据转换成红外信号。红外探测器可以接收红外信号携带的数据,通过一定的电路可以把信息放置到总线202上。总线202把数据传递到主存储器206中,处理器204从主存储器206取回并执行这些指令。在处理器204执行这些指令之前或之后,主存储器206接收的指令可随意地储存于存储装置210中。
计算机系统200还包括连接到总线202的通信接口218。通信接口218提供双向数据通信,连接到与局域网222相连的网络链路220。例如,通信接口218可以是综合业务数字网(ISDN)卡或者调制解调器,用于提供到相应类型电话线的数据通信连接。又如,通信接口218可以是局域网(LAN)卡,用于提供至兼容局域网(LAN)的数据通信连接。也可以使用无线链路。无论采用何种连接,通信接口218均发送和接受承载各种信息的数字数据流的电信号、电磁信号和光学信号。
网络链路220通常可通过一个或者多个网络提供数据通信给其它数据装置。例如,网络链路220可通过局域网222与主机224连接,或者与互联网服务提供商(ISP)226操作的数据设备连接。ISP226又通过目前通称为“互联网”228的全球分组数据通信网络提供数据通信服务。局域网222和互联网228都使用承载数字数据流的电信号、电磁信号或光学信号。这些信号,如通过各种网络的信号,网络链路220上的信号,通过通信接口218的信号,都传送数字数据给计算机系统200或者传送来自计算机系统200的数字数据,是传输信息的载波的示范性形式。
计算机系统200能通过网络、网络链路220和通信接口218发送消息和接收数据,包括程序代码。例如,在互联网上,服务器230可通过互联网228、ISP 226、局域网222、和通信接口218,传送所请求的用于应用程序的程序代码。
当代码被接收和/或储存在存储装置210上或者其它非易失性介质上用于随后执行时,处理器204可执行所接收到的代码。按照这种方式,计算机系统200可以载波的形式获得应用代码。
在前述的说明书中,参考具体实施例描述了本发明。然而,很显然,在不脱离本发明的广泛的精神和范围的基础之上,可以有诸多的调整和变化。说明书和附图,仅用于说明本发明,而不是用于限制本发明的范围。

Claims (26)

1.一种用于选择在解决死锁过程中使用的牺牲的方法,所述方法包括以下步骤:
最初确定多个陷入所述死锁中的候选对象作为将成为所述牺牲的候选对象;
基于一个或多个因素过滤所述多个候选对象,直到剩下唯一的候选对象作为将成为所述牺牲的候选对象;以及
选择所述唯一的候选对象作为在解决所述死锁过程中使用的牺牲。
2.根据权利要求1所述的方法,其中所述过滤步骤还包括从所述多个候选对象中去除具有表明所述候选对象不能是牺牲的能-是-牺牲(CAN-BE-VICTIM)标记的任何候选对象。
3.根据权利要求1所述的方法,其中所述过滤步骤还包括从所述多个候选对象中去除资源优先级高于其它候选对象的至少一个的资源优先级的候选对象。
4.根据权利要求1所述的方法,其中所述过滤步骤还包括从所述多个候选对象中去除与占有实体关联的所有候选对象,其中所述占有实体已经运行的持续时间比与其它候选对象关联的占有实体已经运行的持续时间更长。
5.根据权利要求1所述的方法,其中所述过滤步骤还包括以下计算机实现步骤:
在第一步骤基于第一因素从多个候选对象中去除一些候选对象,其中所留下的候选对象是第一候选对象子集;以及
在第二步骤基于不同于所述第一因素的第二因素从所述第一候选对象子集中去除一些候选对象。
6.根据权利要求5所述的方法,其中,在所述第二步骤之后留下的候选对象是第二候选对象子集,如果在执行所述第一步骤之后所述第一候选对象子集中有多于一个的候选对象,则仅执行基于所述第二因素的第二步骤。
7.根据权利要求6所述的方法,还包括以下计算机实现步骤:仅当执行所述第一步骤和所述第二步骤之后所述第二候选对象子集中还有多于一个的候选对象时,根据第三因素执行第三步骤,其中所述第三因素不同于所述第一因素和所述第二因素。
8.根据权利要求1所述的方法,其中所述过滤步骤还包括以下计算机实现步骤:
执行第一步骤,过滤掉所有具有表明其不是最后一个候选对象的能-是-牺牲标记的候选对象;
如果在所述执行第一步骤之后剩下多于一个的候选对象,那么执行第二步骤以过滤掉资源优先级高于其它候选对象的至少一个的资源优先级的所有候选对象;
如果在执行所述第二步骤之后剩下多于一个的候选对象,那么执行第三步骤,以过滤掉除了运行持续时间最短的候选对象之外的所有候选对象。
9.根据权利要求1所述的方法,其中所述过滤步骤包括基于为所述候选对象建立的优先级进行过滤。
10.根据权利要求9所述的系统,其中动态确定给定候选对象的至少一部分优先级。
11.根据权利要求10所述的方法,其中根据除了所述候选对象外有哪些资源由与所述给定候选对象关联的占有实体所占有,确定所述部分。
12.根据权利要求9所述的方法,其中静态确定给定候选对象的至少一部分优先级。
13.根据权利要求12所述的系统,其中基于所述给定候选对象的类型确定所述部分。
14.一种计算机可读介质,承载用于选择将在解决死锁过程中使用的牺牲的指令,所述计算机可读介质承载执行以下步骤的指令:
最初确定陷入所述死锁的多个候选对象作为将成为所述牺牲的候选对象;
基于一个或多个因素过滤所述多个候选对象,直到剩下唯一的候选对象作为将成为所述牺牲的候选对象;以及
选择所述唯一候选对象作为在解决所述死锁过程中使用的牺牲。
15.根据权利要求14所述的计算机可读介质,其中所述过滤步骤还包括从所述多个候选对象中去除具有表明候选对象不能是牺牲的能-是-牺牲标记的任何候选对象。
16.根据权利要求14所述的计算机可读介质,其中所述过滤步骤还包括从所述多个候选对象中去除资源优先级高于其它候选对象的至少一个的资源优先级的候选对象。
17.根据权利要求14所述的计算机可读介质,其中所述过滤步骤还包括从所述多个候选对象中去除与占有实体关联的所有候选对象,其中所述占有实体已经运行的持续时间比与其它候选对象关联的占有实体已经运行的持续时间更长。
18.根据权利要求14所述的计算机可读介质,其中所述过滤步骤还包括以下计算机实现步骤:
在第一步骤基于第一因素从多个候选对象中去除一些候选对象,其中所留下的候选对象是第一候选对象子集;以及
在第二步骤基于不同于所述第一因素的第二因素从所述第一候选对象子集中去除一些候选对象。
19.根据权利要求18所述的计算机可读介质,其中,在所述第二步骤之后留下的候选对象是第二候选对象子集,如果在执行所述第一步骤之后第一候选对象子集中有多于一个的候选对象,则仅执行基于所述第二因素的第二步骤。
20.根据权利要求19所述的计算机可读介质,还包括用于执行以下计算机实现步骤的指令:仅当执行所述第一步骤和所述第二步骤之后所述第二候选对象子集中还有多于一个的候选对象时,根据第三因素执行第三步骤,其中所述第三因素不同于所述第一因素和所述第二因素。
21.根据权利要求14所述的计算机可读介质,其中所述过滤步骤还包括以下计算机实现步骤:
执行第一步骤,过滤掉所有具有表明其不是最后一个候选对象的能-是-牺牲标记的候选对象;
如果在所述执行第一步骤之后剩下多于一个的候选对象,那么执行第二步骤以过滤掉资源优先级高于其它候选对象的至少一个的资源优先级的所有候选对象;
如果在执行所述第二步骤之后剩下多于一个的候选对象,那么执行第三步骤,以过滤掉除了运行持续时间最短的候选对象之外的所有候选对象。
22.根据权利要求14所述的计算机可读介质,其中所述过滤步骤包括基于为所述候选对象建立的优先级进行过滤。
23.根据权利要求22中所述的计算机可读介质,其中动态确定给定候选对象的至少一部分优先级。
24.根据权利要求23所述的计算机可读介质,其中根据除了所述候选对象之外有哪些资源由与所述给定候选对象关联的占有实体所占有,确定所述部分。
25.根据权利要求22中所述的计算机可读介质,其中静态确定给定候选对象的至少一部分优先级。
26.根据权利要求25所述的计算机可读介质,其中基于给定候选对象的类型确定所述部分。
CNA028152808A 2001-08-03 2002-07-24 用于死锁检测的牺牲选择 Pending CN1539105A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/922,424 US7185339B2 (en) 2001-08-03 2001-08-03 Victim selection for deadlock detection
US09/922,424 2001-08-03

Publications (1)

Publication Number Publication Date
CN1539105A true CN1539105A (zh) 2004-10-20

Family

ID=25447019

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA028152808A Pending CN1539105A (zh) 2001-08-03 2002-07-24 用于死锁检测的牺牲选择

Country Status (6)

Country Link
US (1) US7185339B2 (zh)
EP (1) EP1421488A2 (zh)
JP (1) JP2005502941A (zh)
CN (1) CN1539105A (zh)
CA (1) CA2455917A1 (zh)
WO (1) WO2003014926A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100361081C (zh) * 2005-01-18 2008-01-09 华为技术有限公司 处理多线程/多任务/多处理器的方法
CN101425070B (zh) * 2008-08-11 2011-04-20 深圳市金蝶中间件有限公司 一种死锁定位的方法、死锁定位装置和数据系统
CN102521033A (zh) * 2011-12-14 2012-06-27 华南理工大学 一种监测系统调度的死锁检测与解除方法
CN101937365B (zh) * 2009-06-30 2013-05-15 国际商业机器公司 并行程序的死锁检测方法和系统
CN104239147A (zh) * 2014-10-20 2014-12-24 浪潮(北京)电子信息产业有限公司 一种处理死锁循环方法及系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146678A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置におけるプログラム制御方法、情報処理装置、及びプログラム
CN100337207C (zh) * 2005-03-11 2007-09-12 华为技术有限公司 一种信号量死锁的检测方法
US8141087B2 (en) * 2006-03-31 2012-03-20 International Business Machines Corporation Resolving computing resource deadlocks based on priority and dependent processes
US8108865B2 (en) * 2006-07-31 2012-01-31 Hewlett-Packard Development Company, L.P. Process replication method and system
US20080282244A1 (en) * 2007-05-07 2008-11-13 Microsoft Corporation Distributed transactional deadlock detection
US11281654B2 (en) * 2007-10-23 2022-03-22 International Business Machines Corporation Customized roll back strategy for databases in mixed workload environments
US9104989B2 (en) * 2008-11-17 2015-08-11 Microsoft Technology Licensing, Llc Priority and cost based deadlock victim selection via static wait-for graph
US8521472B2 (en) * 2009-09-18 2013-08-27 International Business Machines Corporation Method to compute wait time
CN102053861B (zh) * 2009-10-30 2014-03-12 国际商业机器公司 并行程序中死锁检测的方法和系统
US7962615B1 (en) 2010-01-07 2011-06-14 International Business Machines Corporation Multi-system deadlock reduction
ES2683624T3 (es) 2013-03-06 2018-09-27 Lightvert Ltd Sistema de visualización basado en la persistencia de visión con una pantalla lineal
US9298507B2 (en) * 2013-09-26 2016-03-29 International Business Machines Corporation Data processing resource management
US10635653B2 (en) * 2016-04-20 2020-04-28 Unisys Corporation Systems and methods for implementing a multi-host record lock deadlock feedback mechanism
EP3964959A1 (en) * 2020-09-03 2022-03-09 ARM Limited Data processing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
DE69322057T2 (de) 1992-10-24 1999-06-10 Int Computers Ltd Verteiltes Datenverarbeitungssystem
JP3392236B2 (ja) * 1994-11-04 2003-03-31 富士通株式会社 分散トランザクション処理システム
US5682537A (en) * 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
US6021113A (en) * 1997-10-29 2000-02-01 Lucent Technologies Inc. Distributed precomputation of network signal paths with table-based link capacity control
US6330610B1 (en) 1997-12-04 2001-12-11 Eric E. Docter Multi-stage data filtering system employing multiple filtering criteria
US6332023B1 (en) * 1998-06-04 2001-12-18 Mci Communications Corporation Method of and system for providing services in a communications network
US6617969B2 (en) * 2001-04-19 2003-09-09 Vigilance, Inc. Event notification system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100361081C (zh) * 2005-01-18 2008-01-09 华为技术有限公司 处理多线程/多任务/多处理器的方法
CN101425070B (zh) * 2008-08-11 2011-04-20 深圳市金蝶中间件有限公司 一种死锁定位的方法、死锁定位装置和数据系统
CN101937365B (zh) * 2009-06-30 2013-05-15 国际商业机器公司 并行程序的死锁检测方法和系统
CN102521033A (zh) * 2011-12-14 2012-06-27 华南理工大学 一种监测系统调度的死锁检测与解除方法
CN104239147A (zh) * 2014-10-20 2014-12-24 浪潮(北京)电子信息产业有限公司 一种处理死锁循环方法及系统
CN104239147B (zh) * 2014-10-20 2018-03-09 浪潮(北京)电子信息产业有限公司 一种处理死锁循环方法及系统

Also Published As

Publication number Publication date
WO2003014926A3 (en) 2004-02-05
US7185339B2 (en) 2007-02-27
CA2455917A1 (en) 2003-02-20
EP1421488A2 (en) 2004-05-26
JP2005502941A (ja) 2005-01-27
WO2003014926A2 (en) 2003-02-20
US20030028638A1 (en) 2003-02-06

Similar Documents

Publication Publication Date Title
CN1539105A (zh) 用于死锁检测的牺牲选择
CN1155894C (zh) 使用可变优先级和合理性的增强总线仲裁器
CN1674548A (zh) 带连接管理的预配置拓扑结构
Bender et al. How to scale exponential backoff: Constant throughput, polylog access attempts, and robustness
CN1648888A (zh) 数据通信系统
CN1522416A (zh) 用于处理电子邮件的设备和方法
CN1738237A (zh) 具有连接管理的密钥配置拓扑
CN1480855A (zh) 信息处理终端和信息处理方法
CN1614555A (zh) 用于自主硬件辅助的线程栈跟踪的装置与方法
CN1601478A (zh) 用于在被争夺的互斥锁上被动态限定的自旋线程的方法与系统
CN1902609A (zh) 用于在一外围装置与一无线装置之间建立通信的系统及方法
CN100337207C (zh) 一种信号量死锁的检测方法
CN1791020A (zh) 用于多层网络中的数据排队优先级区分的方法和系统
CN1703676A (zh) 基于进程事件的信号量系统
CN101051281A (zh) 多cpu对临界资源进行互斥访问的方法和装置
CN1235380C (zh) 相互通信的预处理器
CN101035110A (zh) 业务调用方法、系统及单元
CN1111993C (zh) 对通信系统中消息过载进行管理的方法
WO2015090044A1 (zh) 一种数据扫描的方法及装置
CN1149795C (zh) 下一代网络业务和智能数据网路由器的高级业务体系结构
CN1642167A (zh) 主节点支持从节点上不同协议类型从单元设备的方法
CN1658704A (zh) 一种gmlc中多目标定位时用户上下文的管理方法
CN1296844C (zh) 数据传送方法和数据传送系统
JP2006107197A (ja) メモリ制御方法およびプログラムならびに端末装置
CN1430860A (zh) 便携信息终端、无线通信系统及连接确立方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication