CN115373824B - 冲突检测方法、装置、计算设备和计算机可读存储介质 - Google Patents

冲突检测方法、装置、计算设备和计算机可读存储介质 Download PDF

Info

Publication number
CN115373824B
CN115373824B CN202211299391.2A CN202211299391A CN115373824B CN 115373824 B CN115373824 B CN 115373824B CN 202211299391 A CN202211299391 A CN 202211299391A CN 115373824 B CN115373824 B CN 115373824B
Authority
CN
China
Prior art keywords
target
resource
processing
target resource
task
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
CN202211299391.2A
Other languages
English (en)
Other versions
CN115373824A (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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN202211299391.2A priority Critical patent/CN115373824B/zh
Publication of CN115373824A publication Critical patent/CN115373824A/zh
Application granted granted Critical
Publication of CN115373824B publication Critical patent/CN115373824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

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

本说明书提供冲突检测方法、装置、计算设备和计算机可读存储介质,其中所述冲突检测方法包括:接收针对目标资源的目标处理任务,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,异步获取针对目标资源的潜在冲突,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。通过目标资源的目标持有者信息和预设依赖关系,识别实时冲突,避免了构建资源图或资源表,提升了检测效率,异步获取潜在冲突,确定目标资源的冲突检测结果,保证检测效率、计算机系统的稳定性和安全性。

Description

冲突检测方法、装置、计算设备和计算机可读存储介质
技术领域
本说明书涉及数据处理技术领域,特别涉及冲突检测方法、装置、计算设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,计算机系统存在着众多不同类型的资源。例如,打印机、刻录机、网卡等物理资源;又例如,文件、内存数据、互斥锁、信号量等逻辑资源。通过生成针对上述资源的处理任务,实现对应的功能。然而,资源数量是有限的,存在多个处理任务同时需要处理同一资源的情况。针对这种情况,如果某资源正在被处理任务处理,其他处理任务需要等待该处理任务处理完成并释放该资源后,再处理该资源。处理任务与资源之间并不是一一对应的关系,存在一个处理任务需要处理多个资源的情况。图1示出了现有技术中一种处理任务和资源间的处理顺序示意图。如图1所示,处理任务T1需要执行步骤1:处理资源R1,处理任务T2需要执行步骤4:处理资源R2,此时资源R1和资源R2都在被处理,其当前状态都为不可处理,处理任务T1还需要执行步骤2:处理资源R2,处理任务T2还需要执行步骤3:处理资源R1,对于步骤2,需要等待处理任务T2处理完资源R2并释放资源R2,对于步骤3,需要等待处理任务T1处理完资源R1并释放资源R1。对于T1或T2,其最终等待的都是自己释放当前资源,这样的情况即为资源的依赖冲突(死锁)。资源的依赖冲突不仅使得资源无法被正常处理,处理任务也无法正常执行,导致计算机系统的处理效率低下,甚至造成计算机系统的故障。
目前,对于资源的依赖冲突问题的处理方法,主要是通过提前获取处理任务对应的资源依赖关系,对应构建计算机系统的资源图或者资源表,来确定是否有资源的依赖冲突。
然而,这种方法依赖于系统调度和时序,检测出是否存在实时冲突,而无法确定出潜在冲突,用以保证后续处理的稳定性和计算机系统的安全性,同时,由于需要构建计算机系统的资源图或者资源表,导致计算量过大,降低了检测效率。因此,亟需一种可以提升检测效率、稳定性和计算机系统的安全性的故障检测方法。
发明内容
有鉴于此,本说明书实施例提供了一种冲突检测方法。本说明书同时涉及一种冲突检测装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种冲突检测方法,包括:
接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
根据本说明书实施例的第二方面,提供了一种冲突检测装置,包括:
接收模块,被配置为接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
识别模块,被配置为在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取模块,被配置为异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
确定模块,被配置为根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述冲突检测方法的步骤。
本说明书一个或多个实施例中,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖,异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率,异步获取针对目标资源的潜在冲突,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
附图说明
图1是现有技术中一种处理任务和资源间的处理顺序示意图;
图2是本说明书一实施例提供的一种冲突检测方法的流程图;
图3是本说明书一实施例提供的一种冲突检测方法中目标资源图的示意图;
图4是本说明书一实施例提供的一种应用于实时冲突和潜在冲突的冲突检测方法的处理流程图;
图5是本说明书一实施例提供的一种冲突检测模组的结构示意图;
图6A是本说明书一实施例提供的一种任务-资源结构示意图;
图6B是本说明书一实施例提供的第一种包含任务资源任务依赖关系的任务-资源结构示意图;
图6C是本说明书一实施例提供的第二种包含任务资源任务依赖关系的任务-资源结构示意图;
图6D是本说明书一实施例提供的第三种包含任务资源任务依赖关系的任务-资源结构示意图;
图6E是本说明书一实施例提供的第四种包含任务资源任务依赖关系的任务-资源结构示意图;
图7A是本说明书一实施例提供的一种资源节点示意图;
图7B是本说明书一实施例提供的一种两资源节点结构示意图;
图7C是本说明书一实施例提供的一种两资源节点结构下的交互示意图;
图7D是本说明书一实施例提供的另一种两资源节点结构下的交互示意图;
图8是本说明书一实施例提供的一种冲突检测方法中资源释放方法的流程图;
图9是本说明书一实施例提供的一种冲突检测装置的结构示意图;
图10是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
资源:计算机系统中被共享处理的对象,可以为物理对象,例如,打印机、刻录机、网卡等物理对象;也可以为逻辑对象,例如,文件、内存数据、互斥锁、信号量、数据库及表单等逻辑对象。
资源图:一种有向拓扑图,其中,节点表征资源或者处理任务,边表征资源或者任务之间的被处理顺序。
持有者信息:描述了一种处理任务和资源之间的对应关系的信息,例如,持有者信息为{T,R},可以描述处理任务T已处理资源R,也可以描述处理任务T欲处理资源R。对于已持有和欲持有不做严格区分。
实时冲突:针对计算机系统中包括目标资源的至少两个资源间在处理逻辑上存在重复等待处理的资源依赖冲突。
潜在冲突:针对计算机系统中各资源在处理逻辑上存在重复等待处理的资源依赖冲突,潜在冲突表征至少两个资源间存在出现实时冲突的概率,但并不一定出现实时冲突。相比于实时冲突,潜在冲突不存在执行逻辑上的依赖关系。例如,如图1所示,对于任务T1,先后执行步骤1和步骤2,完成对资源1和资源2的先后处理,对于任务2,先后执行步骤4和步骤3,完成对资源2和资源1的先后处理,实时冲突是由于执行步骤2时,步骤4还在执行,执行步骤3时,步骤1还在执行。对于潜在冲突,无论步骤4是否还在执行,执行步骤2,无论步骤1是否还在执行,执行步骤3,都存在导致实时冲突的风险,即存在潜在冲突。
目前,针对实时冲突的检测,构建计算机系统的资源图的方法,不仅无法检测出潜在冲突,而且由于资源图中节点和边过多,在对图进行遍历计算时,处理的数据量过大,导致检测效率不足。
针对上述问题,本说明书中提供了一种冲突检测方法,本说明书同时涉及一种冲突检测装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图2示出了本说明书一实施例提供的一种冲突检测方法的流程图,应用于计算机系统中的冲突检测模组,具体包括以下步骤:
步骤S202,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息。
目标处理任务为操作资源的逻辑主体,可以为进程、线程、事务等。目标资源为执行目标处理任务所需的一个或多个资源,例如,目标处理任务为获取A表单,对应的目标资源为A表单,目标任务为打印A表单,对应的目标资源为打印机、A表单。目标持有者信息为描述了目标处理任务和目标资源的对应关系的信息。例如,目标处理任务为打印A表单进程,目标资源为打印机、A表单,目标持有者信息为{打印A表单进程,打印机}和{打印A表单进程,A表单}。
接收针对目标资源的目标处理任务,可以为接收用户发送的目标处理任务指令,其中,目标处理任务指令包括针对目标资源的目标处理任务;也可以为接收计算机系统的任务生成模组生成的针对目标资源的目标处理任务,在此不作限定。
示例性地,接收用户发送的目标任务处理指令Proc_Order,得到针对目标资源(文件1:Doc1,文件2:Doc2)的目标处理任务(文件存储进程),目标处理任务携带有目标资源(Doc1,Doc2)的目标持有者信息{文件存储进程,Doc1}和{文件存储进程,Doc2}。
通过接收针对目标资源的目标处理任务,目标处理任务携带目标资源的目标持有者信息,为后续识别实时冲突提供了参考信息。
步骤S204:在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖。
目标资源的当前状态为表征目标资源当前是否可被目标处理任务处理的状态,或者,目标资源的当前状态表征目标资源是否被其他处理任务处理,具体地,当目标资源被其他处理任务处理,其当前状态为不可处理状态,当目标资源未被其他处理任务处理,其当前状态为可处理状态。
目标资源的当前状态为不可处理状态表征目标资源被其他处理任务处理,但其他处理任务针对目标资源的处理不一定与目标处理任务对目标资源的处理产生依赖冲突,因而,需要根据目标持有者信息和预设依赖关系,进一步分析得到是否存在重复等待处理的实时冲突。确定目标资源的当前状态,可以为直接接收目标资源发送的当前状态信息,也可以为先将目标处理任务设置为休眠状态,在接收到目标资源发送的当前状态信息,再确定是否唤醒目标执行任务,还可以为先将目标处理任务设置为休眠状态,在预设时段后,唤醒目标执行任务。通过这样的方式,可以避免因为目标资源当前被正常处理,反而进行不必要的实时冲突检测,降低处理效率的问题。
预设依赖关系表征处理任务与资源之间的处理逻辑上的依赖关系,例如,如图1所示,资源T1在步骤1需要处理资源R1,资源在步骤2需要处理资源R2,而步骤2的执行依赖于步骤4,即T2处理完并释放R2,对应的依赖关系为T1→R2→T2。
根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,具体方式为,根据目标持有者信息和预设依赖关系,确定目标处理依赖关系,根据目标处理依赖关系是否存在逻辑闭环,确定是否存在目标处理任务对目标资源存在重复等待处理的实时冲突。目标处理依赖关系为表征不同执行者信息之间的资源与任务在处理逻辑上的依赖关系。
示例性地,文件2被其他处理任务(文件读写进程)处理,其持有者信息:{文件读写进程,Doc1},{文件读写进程,Doc2}。根据目标持有者信息:{文件存储进程,Doc1},{文件存储进程,Doc2},预设依赖关系:文件存储进程依赖于Doc2依赖于文件读写进程,文件读写进程依赖于Doc1依赖于文件存储进程。确定目标处理依赖关系:文件存储进程依赖于Doc2依赖于文件读写进程依赖于Doc1依赖于文件存储进程,根据目标处理依赖关系:文件存储进程依赖于Doc2依赖于文件读写进程依赖于Doc1依赖于文件存储进程存在逻辑闭环“文件存储进程依赖于文件存储进程”,确定存在目标处理任务“文件存储进程”对目标资源存在重复等待处理的实时冲突。
在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率。
步骤S206:异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理。
针对目标资源的潜在冲突为表征不同处理任务对目标资源存在重复处理的资源依赖冲突。
异步获取针对目标资源的潜在冲突,具体方式为,根据预设的异步获取条件,异步获取针对目标资源的潜在冲突。异步获取条件可以为根据预设周期,周期性地获取针对目标资源的潜在冲突,也可以为在完成对任意处理任务的冲突检测后,即触发获取针对目标资源的潜在冲突,在此不作限定。潜在冲突由于不存在执行逻辑上的依赖关系,因而,不依赖于针对目标资源的目标执行任务来确定,可以进行异步检测,通过这样的异步检测和异步获取,提升了冲突检测的检测效率。
示例性地,预设周期为20s,每隔20s获取针对目标资源(Doc1,Doc2)的潜在冲突。
通过异步获取针对目标资源的潜在冲突,保证了检测效率、计算机系统的稳定性和安全性。
步骤S208:根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果,具体方式为,按照预设的冲突检测要求,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。当预设的冲突检测要求为全面冲突检测时,确定实时冲突和潜在冲突为冲突检测结果;当预设的冲突检测要求为实时冲突检测时,确定实时冲突为冲突检测结果。
示例性地,预设的冲突检测要求为全面冲突检测,确定实时冲突和潜在冲突为冲突检测结果。
冲突检测结果可以在后续反馈给发送目标处理任务指令的用户,也可以在前端进行显示,还可以根据冲突检测结果调整资源间的依赖关系或者处理任务的执行逻辑,进而避免后续出现实时冲突和/或潜在冲突。提升计算机系统的稳定性和安全性。
本说明书实施例中,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖,异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率,异步获取针对目标资源的潜在冲突,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
可选地,步骤S204包括如下具体步骤:
根据目标处理任务、目标资源、目标持有者信息和预设依赖关系,确定目标处理依赖链;
识别目标处理依赖链中是否重复出现目标处理任务;
若是,则确定存在目标处理任务对目标资源存在重复等待处理的实时冲突。
目标处理依赖链为以目标资源或者目标处理任务为节点,根据目标处理依赖关系连接的逻辑链。目标处理依赖链可以为多条,每添加一个目标资源或者目标处理任务(即确定一个节点),便得到一条目标处理依赖链。例如,目标资源为R1、R2、R3和R4,目标处理任务为T1、T2和T3,目标处理依赖关系为:T1依赖于R2依赖于T3依赖于R4依赖于T2依赖于R1依赖于T1依赖于R3,对应的目标处理依赖链为:T1→R2→T3→R4→T2→R1→T1→R3。
根据目标处理任务、目标资源、目标持有者信息和预设依赖关系,确定目标处理依赖链,具体方式为,根据目标持有者信息和预设依赖关系,确定目标处理依赖关系,将目标处理任务和目标资源设定为节点,构建目标处理依赖链。
示例性地,目标处理任务为文件存储进程、文件读写进程、文件创建进程,目标文件为Doc1,Doc2,Doc3,对应的目标持有者信息为{文件存储进程,Doc1},{文件存储进程,Doc2},{文件存储进程,Doc3};{文件读写进程,Doc1},{文件读写进程,Doc2};{文件删除进程,Doc1},{文件删除进程,Doc2},{文件删除进程,Doc3}。对应的预设依赖关系为:文件存储进程依赖于Doc1依赖于文件读写进程依赖于Doc2依赖于文件删除进程;文件删除进程依赖于Doc1依赖于文件读写进程;文件读写进程依赖于Doc1依赖于文件存储进程,文件读写进程依赖于Doc2依赖于文件存储进程,文件读写进程依赖于Doc1依赖于文件存储进程,构建目标处理依赖链:文件存储进程→Doc1→文件读写进程→Doc2→文件删除进程→Doc1→文件读写进程→Doc1→文件存储进程。识别目标处理依赖链中重复出现目标处理任务:文件存储进程和文件读写进程,确定存在实时冲突。
根据目标处理任务、目标资源、目标持有者信息和预设依赖关系,确定目标处理依赖链,识别目标处理依赖链中是否重复出现目标处理任务,若是,则确定存在目标处理任务对目标资源存在重复等待处理的实时冲突。通过目标处理依赖链中是否重复出现目标处理任务,即可确定是否存在实时冲突,提升了检测效率和检测的准确性。
可选地,识别目标处理依赖链中是否重复出现目标处理任务,包括如下具体步骤:
识别目标处理依赖链的首尾节点是否均为目标处理任务。
由于目标处理依赖链可以为多条,一旦识别出目标处理依赖链的首尾节点为目标处理任务,即可实现在出现重复等待,确定存在实时冲突,进一步地简化了识别任务量,无需遍历目标处理任务链上的所有节点,提升了检测效率。
示例性地,识别目标处理依赖链:文件存储进程→Doc1→文件读写进程→Doc2→文件删除进程→Doc1→文件读写进程→Doc1→文件存储进程,其中首尾节点为目标处理任务文件存储进程。目标处理依赖链:文件读写进程→Doc2→文件删除进程→Doc1→文件读写进程,其中首尾节点为目标处理任务文件读写进程。确定存在实时冲突。
通过识别目标处理依赖链的首尾节点是否均为目标处理任务,来确定是否存在实时冲突,简化了识别的任务量,无需遍历目标处理任务链上的所有节点,提升了检测效率和检测的准确性。
可选地,步骤S206中异步获取针对目标资源的潜在冲突,包括如下具体步骤:
根据目标资源的资源信息,异步获取目标资源图,其中,目标资源图根据不同处理任务对资源的处理顺序预先构建得到,目标资源图中的节点表征资源、边表征资源之间的被处理顺序;
根据目标资源图,识别处理目标资源的不同处理任务的处理顺序是否相反;
若是,则确定存在针对目标资源的潜在冲突。
目标资源的资源信息为针对目标资源预先封装处理的资源信息,包括目标资源的自身信息、目标资源的标识信息、目标资源的目标持有者信息、目标资源的预设依赖关系和目标资源的存储路径信息中至少一项。
现有技术中,资源图中的节点表征执行任务和资源,或者经过对资源图进行简化处理只保留表征处理任务的节点,边表征处理任务和资源处理顺序。在计算机系统中,由于资源的数量是相对稳定的,而处理任务是不断增加和衰减的,且处理任务的数量远远大于资源,例如,某应用程序的执行,需要调用数十个文件、硬件等资源,却对应生成上千个进程,启用多个线程来执行。因此确定资源为节点,可以更大程度降低资源图的数据量,提升检测效率。同时,由于本说明书实施例中,对于存在执行逻辑上的依赖关系的实时冲突的检测是通过上述步骤S204实现的,因此目标资源图无需保留表征处理任务的节点,克服了对计算机系统调度和时序的依赖,提升了检测效率。
目标资源图为节点表征各资源,边为有向边,边的方向表征资源之间的被处理顺序。
处理目标资源的不同处理任务的处理顺序为不同处理任务对于相同的、至少两个目标资源的处理顺序。例如,处理任务T1和处理任务T2,对于相同的目标资源R1和R2,处理任务T1的处理顺序为:先开始处理R1后开始处理R2,处理任务T2的处理顺序为:先开始处理R2后开始处理R1。当两者的处理顺序相反,则有概率存在T1在处理R1同时,申请处理R2,T2在处理R2同时,申请处理R1,存在实时冲突。但也有概率存在T1在处理R1同时,申请处理R2,T2已经处理完R2并释放R2,T1成功处理R2,T2申请处理R1,等待T1处理完R1并释放R1后,成功处理R1,不存在实时冲突。
异步获取的具体方式为调用异步线程来驱动获取。
根据目标资源的资源信息,异步获取目标资源图,具体方式为,根据目标资源的标识信息,异步获取目标资源图。目标资源的标识信息为目标资源在计算机系统中的唯一标识信息。
根据目标资源图,识别处理目标资源的不同处理任务的处理顺序是否相反,具体方式为,根据目标资源图,识别表征目标资源的目标节点和其他节点之间的边的连接关系,确定处理目标资源的不同处理任务的处理顺序是否相反。
示例性地,根据目标资源(打印机)的标识信息“Printer1”,异步获取目标资源图,根据目标资源图,识别表征目标资源的目标节点(R1)和其他节点(R2)之间的边的连接关系,对于R1和R2,存在两个处理任务对其进行处理,处理任务T1的处理顺序为:先开始处理R1后开始处理R2,处理任务T2的处理顺序为:先开始处理R2后开始处理R1,因而其连接关系为从R1连接至R2,从R2连接至R1,根据该连接关系,确定存在针对目标资源的潜在冲突。
根据目标资源的资源信息,异步获取目标资源图,根据目标资源图,识别处理目标资源的不同处理任务的处理顺序是否相反,若是,则确定存在针对目标资源的潜在冲突。保证了检测效率、计算机系统的稳定性和安全性,同时通过目标资源的不同处理任务的处理顺序即可确定是否存在潜在冲突,提升了检测效率。
可选地,根据目标资源图,识别处理目标资源的不同处理任务的处理顺序是否相反,包括如下具体步骤:
根据目标资源图,识别表征目标资源的目标节点与其他节点之间是否构成环形;
若是,则确定处理目标资源的不同处理任务的处理顺序相反。
根据目标资源图,识别表征目标资源的目标节点与其他节点之间是否构成环形,具体方式为,根据目标资源图,识别表征目标资源的目标节点与其他节点之间边的连接关系,将各边按照方向首尾相连,确定是否可以构成环形。
图3示出了本说明书一实施例提供的一种冲突检测方法中目标资源图的示意图。
示例性地,如图3所示,目标节点为资源1。根据目标资源图,识别表征目标资源的目标节点与其他节点之间边的连接关系:资源1→资源2→资源3→资源5→资源6→资源1;资源1→资源2→资源6→资源1;资源1→资源4→资源5→资源6→资源1,将各边按照方向首尾相连,确定可以构成环形的节点为资源1,确定处理目标资源的不同处理任务的处理顺序相反,存在潜在冲突。
根据目标资源图,识别表征目标资源的目标节点与其他节点之间是否构成环形,若是,则确定处理目标资源的不同处理任务的处理顺序相反。通过目标资源图的结构特征,即是否构成环形来确定是否存在处理顺序相反,进而识别潜在冲突,避免了大量遍历节点,提升了检测效率。
可选地,在步骤S202之后,还包括如下具体步骤:
在目标资源的当前状态为可处理状态的情况下,基于目标处理任务处理目标资源,并更新目标资源对应的持有者列表中的持有者信息。
持有者列表为资源的各持有者信息的执行顺序列表,例如,目标资源为R1,R1被任务T1处理,按照T1的处理顺序,T1先开始处理R1后开始处理R2,因而目标资源对应的持有者列表为:{R1,T1}→{R2,T1}。持有者列表是预先存储至计算机系统的存储模组中的。
示例性地,目标处理任务为T3,目标资源为R1,目标资源对应的持有者列表为空。T3的处理顺序为R1→R2,基于目标处理任务T3处理目标资源R1,并更新目标资源对应的持有者列表:{R1,T3}→{R2,T3}。
在目标资源的当前状态为可处理状态的情况下,基于目标处理任务处理目标资源,并更新目标资源对应的持有者列表中的持有者信息。保证了目标持有者信息的完整,为后续根据目标持有者信息和预设依赖关系,识别是否存在实时冲突,奠定了数据基础。
可选地,在步骤S202之后,还包括如下具体步骤:
识别目标资源对应的持有者列表中是否已存在目标持有者信息;
若是,则识别目标资源的当前状态是否为可处理状态。
如果目标资源对应的持有者列表中已经存在目标持有者信息,而无需更新持有者列表。同时需要识别目标资源的当前状态是否为可处理状态,再根据当前目标持有者信息进行实时冲突检测。
示例性地,目标资源的持有者列表为:{R1,T3}→{R2,T3},目标持有者信息为{R1,T3},无需更新持有者列表,识别目标资源的当前状态是否为可处理状态。
识别目标资源对应的持有者列表中是否已存在目标持有者信息,若是,则识别目标资源的当前状态是否为可处理状态。在目标资源对应的持有者列表中已存在目标持有者信息的情况下,无需更新持有者列表,提升了检测效率。
可选地,在识别目标资源对应的持有者列表中是否已存在目标持有者信息之后,还包括如下具体步骤:
若否,则将目标持有者信息记录至目标资源对应的持有者列表中,并根据目标持有者信息,更新关联信息。
关联信息为与目标处理任务相关联的信息,包括任务信息和资源图信息。任务信息为针对各处理任务的预先封装的任务信息,包括各处理任务的自身信息、各处理任务的标识信息、各处理任务的关联持有者信息和各处理任务的处理顺序等。资源图信息为针对资源图的预先封装的信息,包括资源图的自身、资源图的标识信息等。
根据目标持有者信息,更新关联信息,具体方式为,根据目标持有者信息,更新任务信息和资源图信息。
示例性地,若否,则将目标持有者信息{R1,T3}记录至目标资源对应的持有者列表中,并根据目标持有者信息目标持有者信息{R1,T3},更新任务信息T3和资源图信息。
若否,则将目标持有者信息记录至目标资源对应的持有者列表中,并根据目标持有者信息,更新关联信息。保证了关联信息的完整,为后续根据目标持有者信息和预设依赖关系,识别是否存在实时冲突,奠定了数据基础。
可选地,根据目标持有者信息,更新关联信息,包括如下具体步骤:
将目标持有者信息记录至目标处理任务对应的关联持有者列表;
根据关联持有者列表,更新资源图,其中,资源图中的节点表征资源、边表征资源之间的被处理顺序。
关联持有者列表为目标处理任务对应目标资源的各持有者信息的执行顺序列表,目标处理任务对应的关联持有者列表与目标资源对应的持有者列表中持有者信息相同。例如,目标资源为R1,R1被任务T1处理,按照T1的处理顺序,T1先开始处理R1后开始处理R2,因而目标资源对应的持有者列表为:{R1,T1}→{R2,T1},针对目标资源的目标处理任务的关联持有者列表为:{R1,T1}→{R2,T1}。关联持有者列表是预先存储至计算机系统的存储模组中的。
根据关联持有者列表,更新资源图,具体方式为,根据关联持有者列表中修改的资源和修改的资源之间的被处理顺序,更新资源图中的节点和边。
示例性地,目标处理任务对应的关联持有者列表为空,将目标持有者信息{R1,T3}和{R2,T3}记录至关联持有者列表,根据关联持有者列表中修改的资源R1、R2和修改的资源之间的被处理顺序R1→R2,更新资源图中的节点和边。
将目标持有者信息记录至目标处理任务对应的关联持有者列表,根据关联持有者列表,更新资源图,其中,资源图中的节点表征资源、边表征资源之间的被处理顺序。使得资源图可以对应更新,为后续识别是否存在潜在冲突,奠定了数据基础的同时,保证了潜在冲突检测的准确性。
可选地,该方法还包括如下具体步骤:
接收资源释放指令,其中,资源释放指令携带待释放资源的资源信息;
根据待释放资源的资源信息,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息。
资源释放指令为完成资源处理后,外部发送的释放资源的指令。资源释放指令可以为用户发送的,也可以为计算机系统的资源调度模组生成的,在此不作限定。
待释放资源为完成处理的资源,待释放资源的资源信息为针对待释放资源预先封装处理的资源信息,包括待释放资源的自身信息、待释放资源的标识信息、待释放资源的当前持有者信息、待释放资源的预设依赖关系和待释放资源的存储路径信息中至少一项。
根据待释放资源的资源信息,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息,具体方式为,根据待释放资源的标识信息,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息。
示例性地,待释放资源为R1,持有者列表和关联持有者列表为:{R1,T1}→{R2,T1},根据待释放资源的标识信息“R1”,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息{R1,T1}。
接收资源释放指令,其中,资源释放指令携带待释放资源的资源信息,根据待释放资源的资源信息,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息。根据资源释放指令携带的待释放资源的资源信息,删除待释放资源对应的当前持有者信息,保证了后续持有者信息对应的资源可以被正常处理,同时为后续的实时冲突检测,提供了数据基础。
可选地,步骤S204包括如下具体步骤:
在目标资源的当前状态为不可处理状态的情况下,设置目标处理任务进入休眠状态;
在预设时段后,唤醒目标处理任务,并识别目标资源的当前状态是否为可处理状态;
若否,则根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突。
无法清楚确定目标资源的当前状态为不可处理状态,是由于目标资源被其他处理任务处理,还是由于出现了实时冲突,而实时冲突检测需要耗费一定的检索时间,因而,可以先设置目标处理任务进入休眠状态,再在预设时段后,唤醒目标处理任务,可以避免目标资源被其他处理任务处理,而进行不必要的实时冲突检测,降低了目标处理任务的处理效率。除了在预设时段后,唤醒目标处理任务,还可以在接收目标资源发送的当前状态为可处理状态的情况下,唤醒目标处理任务,如步骤S204所述。
在预设时段后,唤醒目标处理任务,具体方式为,在预设时间段后,接收目标资源反馈的当前处理任务的执行情况,根据当前处理任务的执行情况唤醒目标处理任务。
示例性地,在目标资源R1的当前状态为不可处理状态的情况下,设置目标处理任务T3进入休眠状态,在预设时段3s后,接收目标资源R1反馈的当前处理任务T1的执行情况,唤醒目标处理任务T3,并识别目标资源R1的当前状态是否为可处理状态。
在目标资源的当前状态为不可处理状态的情况下,设置目标处理任务进入休眠状态,在预设时段后,唤醒目标处理任务,并识别目标资源的当前状态是否为可处理状态,若否,则根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突。避免目标资源被其他处理任务处理,而进行不必要的实时冲突检测,降低了目标处理任务的处理效率。
下述结合附图4,以本说明书提供的冲突检测方法在实时冲突和潜在冲突的应用为例,对所述冲突检测方法进行进一步说明。其中,图4示出了本说明书一实施例提供的一种应用于实时冲突和潜在冲突的冲突检测方法的处理流程图,具体包括以下步骤:
步骤S402,接收针对目标资源的目标处理任务;
目标处理任务携带目标资源的目标持有者信息。
目标资源为操作数据库中的表资源(表资源1,表资源2,表资源3),目标处理任务为对表资源的处理任务{任务1:先开始处理表资源1,接着开始处理表资源2,最后处理表资源3,任务2:先开始处理表资源3,接着开始处理表资源2,最后处理表资源1}目标持有者信息为{表资源1,任务1},{表资源2,任务1},{表资源3,任务1};{表资源3,任务2},{表资源2,任务2},{表资源1,任务2}。
步骤S404,识别目标资源对应的持有者列表中是否已存在目标持有者信息,若是,则识别目标资源的当前状态是否为可处理状态;
步骤S406,若否,则将目标持有者信息记录至目标资源对应的持有者列表中,并根据目标持有者信息,更新任务信息和资源图信息;
具体地,更新任务信息为将目标持有者信息记录至目标处理任务对应的关联持有者列表。更新任务信息为根据关联持有者列表,更新资源图,其中,资源图中的节点表征资源、边表征资源之间的被处理顺序。
资源图中的节点表征各表资源(表资源1,表资源2,表资源3……表资源n),边表征表资源之间的被处理顺序。
步骤S408,在目标资源的当前状态为不可处理状态的情况下,设置目标处理任务进入休眠状态;
步骤S410:在预设时段后,唤醒目标处理任务,并识别目标资源的当前状态是否为可处理状态;
步骤S412, 若是,基于目标处理任务处理目标资源,并更新目标资源对应的持有者列表中的持有者信息;
步骤S414,若否,则根据目标处理任务、目标资源、目标持有者信息和预设依赖关系,确定目标处理依赖链;
目标处理依赖链为任务1→表资源1→任务1→表资源2→任务1→表资源3→任务2→表资源2→任务2→表资源1。
步骤S416,识别目标处理依赖链的首尾节点是否均为目标处理任务;
识别目标处理依赖链的首尾节点均为目标处理任务:任务1。
步骤S418,若是,则确定存在目标处理任务对目标资源存在重复等待处理的实时冲突;
步骤S420,根据目标资源的资源信息,异步获取目标资源图;
步骤S422,根据目标资源图,识别表征目标资源的目标节点与其他节点之间是否构成环形;
步骤S424,若是,则确定存在针对目标资源的潜在冲突;
步骤S426,根据实时冲突和潜在冲突,确定目标资源的冲突检测结果。
本说明书实施例中,通过识别目标资源对应的持有者列表中是否已存在目标持有者信息,避免了重复更新持有者列表,保证了目标资源正常被处理;通过更新任务信息和资源图信息,为后续识别是否存在实时冲突,奠定了数据基础;通过设置目标处理任务进入休眠状态,并在预设时段后,唤醒所述目标处理任务,避免目标资源被其他处理任务处理,而进行不必要的实时冲突检测,降低了目标处理任务的处理效率;通过识别目标处理依赖链的首尾节点是否均为目标处理任务,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率;通过识别表征目标资源的目标节点与其他节点之间是否构成环形,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
图5示出了本说明书一实施例提供的一种冲突检测模组的结构示意图。如图5所示,冲突检测模组包括实时冲突检测子模组和潜在冲突检测子模组,潜在冲突检测子模组是通过异步线程来驱动的。冲突检测模组接收实时资源申请、释放,通过执行实时冲突检测,实时反馈资源申请、释放、冲突,通过执行潜在冲突检测异步反馈潜在冲突。
图6A-图6E示出了本说明书一实施例提供的一种冲突检测方法中构建持有者列表和关联持有者列表的方法流程。
其中,图6A是本说明书一实施例提供的一种任务-资源结构示意图,图6A中资源为资源1和资源2,处理任务为任务1和任务2,将资源和处理任务设定为节点。图6B是本说明书一实施例提供的第一种包含任务资源任务依赖关系的任务-资源结构示意图,对于资源1,持有者信息为{资源1,任务1},对应添加至处理任务1对应的关联持有者列表:{资源1,任务1},对应添加至资源1对应的持有者列表:{资源1,任务1}。图6C是本说明书一实施例提供的第二种包含任务资源任务依赖关系的任务-资源结构示意图,对于资源2,持有者信息为{资源2,任务2},对应添加至处理任务2对应的关联持有者列表:{资源2,任务2},对应添加至资源2对应的持有者列表:{资源2,任务2}。图6D是本说明书一实施例提供的第三种包含任务资源任务依赖关系的任务-资源结构示意图,对于资源1,持有者信息为{资源2,任务1},对应添加至处理任务1对应的关联持有者列表:{资源1,任务1},{资源2,任务1},对应添加至资源1对应的持有者列表:{资源1,任务1},{资源2,任务1}。图6E是本说明书一实施例提供的第四种包含任务资源任务依赖关系的任务-资源结构示意图,对于资源2,持有者信息为{资源1,任务2},对应添加至处理任务1对应的关联持有者列表:{资源2,任务2},{资源1,任务2},对应添加至资源1对应的持有者列表:{资源2,任务2},{资源1,任务2}。
图7A-图7C示出了本说明书一实施例提供的一种冲突检测方法中构建资源图的方法流程。
图7 A是本说明书一实施例提供的一种资源节点示意图,先将资源1设置为节点,图7B是本说明书一实施例提供的一种两资源节点结构示意图,再将资源2设置为节点,图7C是本说明书一实施例提供的一种两资源节点结构下的交互示意图,根据处理任务1的处理顺序:资源1→资源2,为资源1和资源2设置从资源1指向资源2的边,图7D是本说明书一实施例提供的另一种两资源节点结构下的交互示意图,根据处理任务2的处理顺序:资源2→资源1,为资源2和资源1设置从资源2指向资源1的边。
图8示出了本说明书一实施例提供的一种冲突检测方法中资源释放方法的流程图。
外部申请释放资源,即冲突检测模组接收到资源释放指令后,根据资源释放指令携带的待释放资源的资源信息对应更新资源信息和关联信息,其中,更新资源信息即从持有者列表中删除待释放资源的资源信息,更新关联信息即从关联持有者列表中删除待释放资源的资源信息,在更新资源信息和关联信息后,向申请释放资源的外部反馈释放完成。
与上述方法实施例相对应,本说明书还提供了冲突检测装置实施例,图9示出了本说明书一实施例提供的一种冲突检测装置的结构示意图。如图9所示,该装置包括:
接收模块902,被配置为接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
识别模块904,被配置为在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取模块906,被配置为异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
确定模块908,被配置为根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
可选地,识别模块904被进一步配置为:
根据目标处理任务、目标资源、目标持有者信息和预设依赖关系,确定目标处理依赖链,识别目标处理依赖链中是否重复出现目标处理任务,若是,则确定存在目标处理任务对目标资源存在重复等待处理的实时冲突。
可选地,识别模块904被进一步配置为:
识别目标处理依赖链的首尾节点是否均为目标处理任务。
可选地,异步获取模块906被进一步配置为:
根据目标资源的资源信息,异步获取目标资源图,其中,目标资源图根据不同处理任务对资源的处理顺序预先构建得到,目标资源图中的节点表征资源、边表征资源之间的被处理顺序,根据目标资源图,识别处理目标资源的不同处理任务的处理顺序是否相反,若是,则确定存在针对目标资源的潜在冲突。
可选地,异步获取模块906被进一步配置为:
根据目标资源图,识别表征目标资源的目标节点与其他节点之间是否构成环形,若是,则确定处理目标资源的不同处理任务的处理顺序相反。
可选地,该装置还包括:
第一更新模块,被配置为在目标资源的当前状态为可处理状态的情况下,基于目标处理任务处理目标资源,并更新目标资源对应的持有者列表中的持有者信息。
可选地,该装置还包括:
判断模块,被配置为识别目标资源对应的持有者列表中是否已存在目标持有者信息,若是,则识别目标资源的当前状态是否为可处理状态。
可选地,该装置还包括:
第二更新模块,被配置为若否,则将目标持有者信息记录至目标资源对应的持有者列表中,并根据目标持有者信息,更新关联信息。
可选地,该装置还包括:
第三更新模块,被配置为将目标持有者信息记录至目标处理任务对应的关联持有者列表,根据关联持有者列表,更新资源图,其中,资源图中的节点表征资源、边表征资源之间的被处理顺序。
可选地,该装置还包括:
资源释放模块,被配置为接收资源释放指令,其中,资源释放指令携带待释放资源的资源信息,根据待释放资源的资源信息,从持有者列表和关联持有者列表中删除待释放资源对应的当前持有者信息。
可选地,识别模块904被进一步配置为:
在目标资源的当前状态为不可处理状态的情况下,设置目标处理任务进入休眠状态,在预设时段后,唤醒目标处理任务,并识别目标资源的当前状态是否为可处理状态,若否,则根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突。
本说明书实施例中,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖,异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率,异步获取针对目标资源的潜在冲突,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
上述为本实施例的一种冲突检测装置的示意性方案。需要说明的是,该冲突检测装置的技术方案与上述的冲突检测方法的技术方案属于同一构思,冲突检测装置的技术方案未详细描述的细节内容,均可以参见上述冲突检测方法的技术方案的描述。
图10示出了本说明书一实施例提供的一种计算设备的结构框图。该计算设备1000的部件包括但不限于存储器1010和处理器1020。处理器1020与存储器1010通过总线1030相连接,数据库1050用于保存数据。
计算设备1000还包括接入设备1040,接入设备1040使得计算设备1000能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备1040可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,World Interoperabilityfor Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备1000的上述部件以及图10中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图10所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1000可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC(Personal Computer,个人电脑)的静止计算设备。计算设备1000还可以是移动式或静止式的服务器。
其中,处理器1020用于执行如下计算机可执行指令:
接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
本说明书实施例中,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖,异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率,异步获取针对目标资源的潜在冲突,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的冲突检测方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述冲突检测方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息;
在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理;
根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。
本说明书实施例中,接收针对目标资源的目标处理任务,其中,目标处理任务携带目标资源的目标持有者信息,在目标资源的当前状态为不可处理状态的情况下,根据目标持有者信息和预设依赖关系,识别目标处理任务对目标资源存在重复等待处理的实时冲突,其中,预设依赖关系表征处理任务与资源之间的处理依赖,异步获取针对目标资源的潜在冲突,其中,潜在冲突表征不同处理任务对目标资源存在重复处理,根据实时冲突和/或潜在冲突,确定目标资源的冲突检测结果。只通过目标资源的目标持有者信息和预设依赖关系,识别出实时冲突,避免了需要构建计算机系统的资源图或者资源表,导致计算量过大的问题,提升了检测效率,异步获取针对目标资源的潜在冲突,来确定目标资源的冲突检测结果,保证了检测效率、计算机系统的稳定性和安全性。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的冲突检测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述冲突检测方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种冲突检测方法,其特征在于,包括:
接收针对目标资源的目标处理任务,其中,所述目标处理任务携带所述目标资源的目标持有者信息;
在所述目标资源的当前状态为不可处理状态的情况下,根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果,其中,所述预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对所述目标资源是否存在潜在冲突的潜在冲突检测结果,其中,所述潜在冲突表征不同处理任务对所述目标资源存在重复处理;
根据所述实时冲突检测结果和/或所述潜在冲突检测结果,确定所述目标资源的冲突检测结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果,包括:
根据所述目标处理任务、所述目标资源、所述目标持有者信息和预设依赖关系,确定目标处理依赖链;
识别所述目标处理依赖链中是否重复出现所述目标处理任务;
若是,则确定所述目标处理任务对所述目标资源存在重复等待处理的实时冲突的实时冲突检测结果。
3.根据权利要求2所述的方法,其特征在于,所述识别所述目标处理依赖链中是否重复出现所述目标处理任务,包括:
识别所述目标处理依赖链的首尾节点是否均为所述目标处理任务。
4.根据权利要求1所述的方法,其特征在于,所述异步获取针对所述目标资源是否存在潜在冲突的潜在冲突检测结果,包括:
根据所述目标资源的资源信息,异步获取目标资源图,其中,所述目标资源图根据不同处理任务对资源的处理顺序预先构建得到,所述目标资源图中的节点表征资源、边表征资源之间的被处理顺序;
根据所述目标资源图,识别处理所述目标资源的不同处理任务的处理顺序是否相反;
若是,则确定存在针对所述目标资源的潜在冲突的潜在冲突检测结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标资源图,识别处理所述目标资源的不同处理任务的处理顺序是否相反,包括:
根据所述目标资源图,识别表征所述目标资源的目标节点与其他节点之间是否构成环形;
若是,则确定处理所述目标资源的不同处理任务的处理顺序相反。
6.根据权利要求1所述的方法,其特征在于,在所述接收针对目标资源的目标处理任务之后,还包括:
在所述目标资源的当前状态为可处理状态的情况下,基于所述目标处理任务处理所述目标资源,并更新所述目标资源对应的持有者列表中的持有者信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在所述接收针对目标资源的目标处理任务之后,还包括:
识别所述目标资源对应的持有者列表中是否已存在所述目标持有者信息;
若是,则识别所述目标资源的当前状态是否为可处理状态。
8.根据权利要求7所述的方法,其特征在于,在所述识别所述目标资源对应的持有者列表中是否已存在所述目标持有者信息之后,还包括:
若否,则将所述目标持有者信息记录至所述目标资源对应的持有者列表中,并根据所述目标持有者信息,更新关联信息。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标持有者信息,更新关联信息,包括:
将所述目标持有者信息记录至所述目标处理任务对应的关联持有者列表;
根据所述关联持有者列表,更新资源图,其中,所述资源图中的节点表征资源、边表征资源之间的被处理顺序。
10.根据权利要求9所述的方法,其特征在于,还包括:
接收资源释放指令,其中,所述资源释放指令携带待释放资源的资源信息;
根据所述待释放资源的资源信息,从所述持有者列表和所述关联持有者列表中删除所述待释放资源对应的当前持有者信息。
11.根据权利要求1-6中任一项所述的方法,其特征在于,所述在所述目标资源的当前状态为不可处理状态的情况下,根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果,包括:
在所述目标资源的当前状态为不可处理状态的情况下,设置所述目标处理任务进入休眠状态;
在预设时段后,唤醒所述目标处理任务,并识别所述目标资源的当前状态是否为可处理状态;
若否,则根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果。
12.一种冲突检测装置,其特征在于,包括:
接收模块,被配置为接收针对目标资源的目标处理任务,其中,所述目标处理任务携带所述目标资源的目标持有者信息;
识别模块,被配置为在所述目标资源的当前状态为不可处理状态的情况下,根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果,其中,所述预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取模块,被配置为异步获取针对所述目标资源是否存在潜在冲突的潜在冲突检测结果,其中,所述潜在冲突表征不同处理任务对所述目标资源存在重复处理;
确定模块,被配置为根据所述实时冲突检测结果和/或所述潜在冲突检测结果,确定所述目标资源的冲突检测结果。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
接收针对目标资源的目标处理任务,其中,所述目标处理任务携带所述目标资源的目标持有者信息;
在所述目标资源的当前状态为不可处理状态的情况下,根据所述目标持有者信息和预设依赖关系,获取所述目标处理任务对所述目标资源是否存在重复等待处理的实时冲突的实时冲突检测结果,其中,所述预设依赖关系表征处理任务与资源之间的处理依赖;
异步获取针对所述目标资源是否存在潜在冲突的潜在冲突检测结果,其中,所述潜在冲突表征不同处理任务对所述目标资源存在重复处理;
根据所述实时冲突检测结果和/或所述潜在冲突检测结果,确定所述目标资源的冲突检测结果。
14.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至11任意一项所述冲突检测方法的步骤。
CN202211299391.2A 2022-10-24 2022-10-24 冲突检测方法、装置、计算设备和计算机可读存储介质 Active CN115373824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211299391.2A CN115373824B (zh) 2022-10-24 2022-10-24 冲突检测方法、装置、计算设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211299391.2A CN115373824B (zh) 2022-10-24 2022-10-24 冲突检测方法、装置、计算设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN115373824A CN115373824A (zh) 2022-11-22
CN115373824B true CN115373824B (zh) 2023-02-03

Family

ID=84072772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211299391.2A Active CN115373824B (zh) 2022-10-24 2022-10-24 冲突检测方法、装置、计算设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115373824B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992630A (zh) * 2021-09-10 2022-01-28 新华三大数据技术有限公司 一种网络资源冲突处理方法、装置、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304938B1 (en) * 1999-02-23 2001-10-16 Oracle Corporation Detecting a state change in a lock structure to validate a potential deadlock
US8429657B2 (en) * 2008-04-28 2013-04-23 Oracle International Corporation Global avoidance of hang states via priority inheritance in multi-node computing system
CN102200924B (zh) * 2011-05-17 2014-07-16 北京北大众志微系统科技有限责任公司 基于模调度实现循环指令调度的编译方法及装置
US10977092B2 (en) * 2015-10-16 2021-04-13 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts
US11074106B2 (en) * 2019-07-01 2021-07-27 Sap Se Sorting tasks with dependencies and resource sharing
CN110865888B (zh) * 2019-11-28 2023-07-21 米哈游科技(上海)有限公司 一种资源加载方法、装置、服务器及存储介质
US11567811B2 (en) * 2020-09-28 2023-01-31 Red Hat, Inc. Detecting multiple operator pattern services making conflicting resource modifications
CN112214408B (zh) * 2020-10-12 2024-05-28 抖音视界有限公司 依赖冲突检测方法、装置、电子设备及计算机可读介质
CN112486689A (zh) * 2020-12-10 2021-03-12 苏州浪潮智能科技有限公司 一种资源管理平台资源回收方法、装置、设备及可读介质
CN112631607B (zh) * 2020-12-31 2023-09-26 东北大学 一种检测python环境中依赖冲突的方法
CN114793348A (zh) * 2021-01-26 2022-07-26 维沃移动通信有限公司 资源处理方法、装置、终端和存储介质
CN113034142B (zh) * 2021-01-29 2022-08-02 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置以及计算机设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992630A (zh) * 2021-09-10 2022-01-28 新华三大数据技术有限公司 一种网络资源冲突处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115373824A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
CN109274754B (zh) 用于在区块链网络中同步数据的方法、设备和存储介质
US9189270B2 (en) Realizing jumps in an executing process instance
CN109324833B (zh) 一种运行应用程序的方法及装置
Delporte-Gallet et al. Tight failure detection bounds on atomic object implementations
CN109960686A (zh) 数据库的日志处理方法和装置
JP2022013854A (ja) 2フェーズコミット分散トランザクションを使用することによってデータベースを更新するための方法および装置
CN110704112B (zh) 在区块链中并发执行交易的方法和装置
CN105847447A (zh) 消息推送方法和装置
CN105573825B (zh) 一种跨操作系统的任务间同步的方法及装置
CN110888727A (zh) 并发无锁队列实现方法、装置及存储介质
US11880284B2 (en) Storage restore system, storage restore method, and storage medium
CN115481127A (zh) 数据库的数据存储方法、存储介质与设备
EP3696658A1 (en) Log management method, server and database system
US10872085B2 (en) Recording lineage in query optimization
CN113204335B (zh) 面向协同建模的uml模型合并与一致性检测方法及系统
CN115373824B (zh) 冲突检测方法、装置、计算设备和计算机可读存储介质
CN113312182A (zh) 一种云计算节点、文件处理方法及装置
US9710337B1 (en) Systems and methods for restoring web parts in content management systems
US20240086234A1 (en) Method and device for scheduling tasks in multi-core processor
US10447607B2 (en) System and method for dequeue optimization using conditional iteration
CN113741931A (zh) 软件升级方法、装置、电子设备及可读存储介质
CN113985961A (zh) 时钟同步装置、方法、电子设备及存储介质
US8762776B2 (en) Recovering from a thread hang
CN112286947A (zh) 保持不同存储系统的数据一致的方法以及装置
CN114510582B (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