CN115878336A - 锁操作中的信息处理方法、装置及计算设备 - Google Patents
锁操作中的信息处理方法、装置及计算设备 Download PDFInfo
- Publication number
- CN115878336A CN115878336A CN202111153050.XA CN202111153050A CN115878336A CN 115878336 A CN115878336 A CN 115878336A CN 202111153050 A CN202111153050 A CN 202111153050A CN 115878336 A CN115878336 A CN 115878336A
- Authority
- CN
- China
- Prior art keywords
- information
- target lock
- lock resource
- resource
- applicant
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 20
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007717 exclusion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009517 secondary packaging Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种锁操作中的信息处理方法、装置及计算设备。其中,检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中;将所述目标锁资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;所述记录信息在所述目标锁资源发生死锁时,用于确定死锁故障信息。本申请实施例提供的技术方案中实现了快速确定死锁故障信息的目的。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种锁操作中的信息处理方法、装置及计算设备。
背景技术
为了保证对共享资源的安全访问,引入互斥锁机制保证共享资源每次只能被一个线程访问,因此共享资源也被称为锁资源。
每个线程访问某个目标锁资源之前首先尝试对其执行加锁操作,访问结束之后再执行解锁操作,释放该目标锁资源。若一个目标锁资源被一个线程持有之后,另一个线程对其执行加锁操作,将无法获得该锁资源而发生阻塞,导致死锁,发生死锁时,需要确定锁资源的持有者等死锁故障信息。
如何快速定位死锁故障信息成为本领域技术人员需要解决的技术问题。
发明内容
本申请实施例提供一种锁操作中的信息处理方法、装置及计算设备。
第一方面,本申请实施例中提供了一种锁操作中的信息处理方法,包括:
检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中;
将所述目标锁资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;
检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;
所述记录信息在所述目标锁资源发生死锁时,用于确定死锁故障信息。
可选地,所述检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息之后,所述方法还包括:
在所述记录信息中记录删除者信息。
可选地,所述查找所述目标锁资源对应记录信息中的持有者信息之后,所述方法还包括:
若所述目标锁资源对应记录信息中不存在所述持有者信息,将所述目标锁资源分配给所述加锁操作的申请者;
若所述目标锁资源对应记录中存在所述持有者信息,检测所述目标锁资源被释放之后,确定是否将所述目标锁资源分配给所述加锁操作的申请者,若是,将所述目标锁资源分配给所述加锁操作的申请者。
可选地,还包括:
检测所述目标锁资源是否发生死锁;
在所述目标锁资源发生死锁时,基于所述目标锁资源对应的记录信息,向相关人员发送死锁故障通知。
可选地,所述检测操作系统是否发生死锁包括:
判断申请获取所述目标锁资源的任一申请者的访问申请是否未在规定时间内响应;若是,确定所述目标锁资源发生死锁。
可选地,所述检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中包括:
检测基于目标锁资源对加锁接口发起的调用请求,调用所述加锁接口查找所述目标锁资源的持有者信息,并保存至记录信息中;
所述将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息包括:
调用所述加锁接口将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息。
可选地,所述检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息包括:
检测基于所述目标锁资源对解锁接口发起的调用请求,调用所述解锁接口从所述记录信息中删除所述持有者信息。
可选地,所述检测基于目标锁资源对加锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的加锁接口发起的调用请求;所述线程库基于修改之后的所述加锁接口重新编译获得。
可选地,所述检测基于所述目标锁资源对解锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的解锁接口发起的调用请求;所述线程库基于修改之后的所述解锁接口重新编译获得。
可选地,所述查找所述目标锁资源对应记录信息中的持有者信息包括:
从共享内存中查找所述目标锁资源对应的记录信息中的持有者信息;
所述在所述目标锁资源发生死锁时,基于所述目标锁资源对应的记录信息,向相关人员发送死锁故障通知包括:
检测所述目标锁资源发生死锁时,将所述目标锁资源对应的记录信息保存至本地文件;
向相关人员发送包含所述本地文件的死锁故障通知。
第二方面,本申请实施例中提供了一种锁操作中的信息处理装置,包括:
查找模块,用于检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中;
第一记录模块,用于将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;
第二记录模块,用于检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;
所述记录信息在所述目标所资源发生死锁时,用于确定所述目标锁资源的持有者信息。
第三方面,本申请实施例中提供了一种计算设备,包括处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,以执行如上述第一方面所述的锁操作中的信息处理方法。
本申请实施例中,检测到针对目标锁资源的加锁操作,查找所述目标锁资源对应记录信息中的持有者信息;将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;从而基于记录信息可以在所述目标锁资源发生死锁时,快速定位目标锁资源的持有者,能够快速确定死锁故障信息。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的一种锁操作中的信息处理方法一个实施例流程图;
图2示出了本申请实施例在一个实际应用中锁操作中的信息记录示意图;
图3示出了本申请提供的一种锁操作中的信息处理方法又一个实施例流程图;
图4示出了本申请提供的一种锁操作中的信息处理装置一个实施例的结构示意图;
图5示出了与本申请提供的一种计算设备一个实施例结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
由背景技术中的描述可知,发生死锁时需要定位死锁故障信息,如资源持有的线程等,以可以采用相应措施,将线程从死锁状态中解脱出来,清除掉死锁。
目前,线程通常是通过调用相关锁操作接口来实现加锁及解锁等锁操作,为了记录调用锁操作接口的调用者信息,以便于发生死锁时据此分析死锁故障信息,需要对线程对应的应用程序修改应用源码,对锁操作接口进行二次封装,应用程序运行的线程具体调用二次封装之后的函数执行锁操作,线程每一次对二次封装的函数的调用,即会记录下自身的调用者信息,包括调用者id、所使用的锁资源的标识符等信息,但是,在目标锁资源发生死锁时,需要对每个线程记录的调用者信息进行分析,数据量较大,信息存在冗余,从大量调用者信息中分析死锁故障信息,将耗费较长时间,导致无法快速定位死锁故障信息。
为了快速定位死锁故障信息,发明人经过一系列研究提出了一种锁操作中的信息处理方法,通过锁操作中的记录信息,实现了快速定位死锁故障信息的目的。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种锁操作中的信息处理方法,该方法可以包括以下几个步骤:
101:检测到针对目标锁资源的加锁操作,查找目标锁资源的持有者信息,并保存至记录信息中。
其中,该加锁操作的申请者可以是操作系统运行的应用程序对应的线程。在一个实际应用中,可以为车机系统中车机应用的线程。车机系统中通常可以配置多个车机应用,车机应用运行时采用创建线程方式,由相应线程执行相应操作。
在车机系统中可以引入互斥锁机制,通过互斥锁机制实现对共享资源的安全访问,该目标锁资源即可以是指任一个共享资源。
某个线程想要持有目标锁资源时,可以执行加锁操作,加锁操作可以传入目标锁资源的资源标识符,如handle(句柄),检测到该加锁操作之后,根据handle可以查找该目标锁资源的持有者信息,若该目标锁资源未被任何线程占用,则持有者信息及为空。
持有者信息可以包括持有者id,资源标识符等。当然,还可能包括其他信息,本申请对此不进行具体限定。
可选地,可以是从共享内存中查找目标锁资源的持有者信息。
其中,记录信息可以保存至该共享内存中,每个线程可以对应一个记录信息。查找目标锁资源的持有者信息也即可以从共享内存保存的所有线程的记录信息中查找。
102:将目标索资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息。
其中,若目标锁资源不存在持有者信息,表明目标锁资源未被占用,此时即可以将目标锁资源分配给加锁操作的申请者;
若目标锁资源存在持有者信息,表明目标锁资源被占用,需要等待目标锁资源释放,检测到目标锁资源被释放之后,再确定是否将目标锁资源分配给加锁操作的申请者,若是,将目标锁资源分配给加锁操作的申请者。
由于可能存在多个申请者对目标锁资源请求执行加锁操作,可以按照申请时间先后顺序,将释放的目标锁资源进行分配。
当然,若目标锁资源一直未被释放,申请者的访问请求长时间未获得响应,则表明目标锁资源发生死锁,无法使用,此时即需要解决死锁问题。
将目标锁资源分配给加锁操作的申请者之后,此时即可以将记录信息中的持有者信息更新为申请者的申请者信息,以保证记录信息记录的为目标锁资源实际占有者的相关信息。申请者信息也即包括申请者id、资源标识符等。
103:检测到针对目标锁资源的解锁操作,从记录信息中删除持有者信息。
记录信息即可以用于在目标锁资源发生故障时,确定死锁故障信息。由于发生解锁操作之后,表明申请者对目标锁资源是一个完整的加锁和解锁过程,因此,可以从记录信息中删除持有者信息,记录信息可以空,可以无需参与死锁故障分析。而若某个记录信息中记录有持有者信息,根据该持有者信息可以确定为目标锁资源的实际持有者,实现快速定位目的。
通过本申请实施例的记录信息,可以实现快速确定死锁故障信息的目的,且记录信息会在目标锁资源解锁之后,而删除持有者信息,降低了记录数据量,本申请实施例采用较小的数据记录量即可以快速确定死锁故障信息,信息冗余度低。相较于目前由每个申请者发起对加锁操作的调用之后,即会记录调用者信息,发起解锁操作的调用之后,记录解锁这信息,数据记录量小,且根据调用者信息无法确定其是否为持有者,需要分析所有调用者信息和解锁者信息之后,才可以确定,采用本申请技术方案显著提高死锁故障确定效率。
此外,从记录信息删除持有者信息之后,记录信息可以空,记录信息也可以自动删除。
当然,作为另一种可选方式,从记录信息中删除持有者信息之后,方法还可以包括:
在记录信息中记录删除者信息。
对于记录有删除者信息的记录信息可以不参与死锁故障信息的确定。
在某些实施例,该方法还可以包括:
检测目标锁资源是否发生死锁;
在目标锁资源发送死锁时,基于记录信息,向相关人员发送死锁故障通知。
其中,记录信息具体保存至共享内存中,可以是基于共享内存中所有记录信息,向相关人员发送死锁故障通知。此外,也可以是基于内存中未记录删除者信息的记录信息,向相关人员发送死锁故障通知。
可选地,在目标锁资源发生死锁时,基于记录信息,向相关人员发送死锁故障通知可以是:
检测目标锁资源发生死锁时,将记录信息保存至本地文件;
向相关人员发送包含本地文件的死锁故障通知。
其中,检测目标锁资源是否发生死锁可以通过判断申请获取目标锁资源的任一申请者的访问申请是否未在规定时间内响应来确定,若是,则可以确定目标锁资源发生死锁。
为了便于理解,参见图2所示的锁操作示意图中,假设线程1在t1时刻触发对目标锁资源的加锁操作,此时可以首先确定该目标锁资源之前的持有者信息,并记录在线程1对应的记录信息中。目标锁资源在点A时刻分配给线程1之后,根据线程1的相关信息更新该持有者信息(可以是在分配给线程1之后的立即执行,本申请对此不进行限定,图中虚线仅是示例说明是在t1时刻之后执行,并非限定间隔的时间长短);
假设线程2在t2时刻触发对目标锁资源的加锁操作,由于该目标锁资源被线程1占用,则线程1作为持有者记录在线程2对应的记录信息中。
若线程2的访问申请在规定时间内未获得响应,可以表明目标锁资源发生死锁,此时根据线程2的记录信息以及线程1的记录信息,均可以快速确定目标锁资源的实际持有者为线程1,从而可以对线程1执行相应干预措施,以解除死锁故障。
假设线程1在t3时刻触发对目标锁资源的解锁操作,则线程1中的记录信息中持有者信息会被删除,同时还可以记录删除者信息。
目标锁资源被释放之后,可以分配给线程2,例如在点B时刻分配给线程2,此时,会根据线程2的相关信息更新线程2的记录信息中的持有者信息。此时,线程1的记录信息不存在持有者信息,目标锁资源之后发生死锁故障之后,线程1的记录信息即可以无需参与故障分析。
之后,线程2在t4时刻触发对目标锁资源的解锁操作,将目标锁资源从线程2释放出来之后,线程2中的记录信息中的持有者信息会被删除。
因此,一个完成加锁和解锁的资源使用的线程不是死锁故障参与者,其记录信息中不存在持有者信息,可以不参与死锁故障分析,以减少分析数据量。
在某些实施例中,检测到针对目标锁资源的加锁操作,查找目标锁资源对应记录信息中的持有者信息包括:
检测基于目标锁资源对加锁接口发起的调用请求,调用加锁接口查找目标锁资源对应记录信息中的持有者信息;
将目标索资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息包括:
调用加锁接口将目标索资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息。
也即本申请实施例中,信息记录操作可以由加锁接口执行,而非申请者记录,申请者通常为应用程序的线程,从而可以使得无需修改应用程序的应用源码,应用程序的线程可以直接调用加锁接口执行加锁操作,由加锁接口执行信息记录的相关操作。
可选地,检测到针对目标锁资源的解锁操作,从记录信息中删除持有者信息包括:
检测基于目标锁资源对解锁接口发起的调用请求,调用解锁接口从记录信息中删除持有者信息。
意即解锁操作也可以由解锁接口执行,加锁操作以及解锁操作即可以为相应的锁操作接口执行,使得无需修改应用程序的应用源码,即可以实现信息记录的相关操作。
实际应用中,该加锁接口可以是操作系统动态链接的线程库(pthread库)中提供的接口。pthread库可以包含与c标准函数库中,pthread库中的接口可以基于POSIX(Portable Operating System Interface,可移植操作系统接口)标准定义了,加锁接口例如可以为pthread_mutex_lock()函数,解锁接口例如可以为pthread_mutex_unlock()函数。
为了使得加锁接口以及解锁接口执行信息记录操作。可以通过对加锁接口以及解锁接口进行修改获得,再重新编译pthread库以及c标准函数库即可以实现。
因此,在某些实施例中,检测基于目标锁资源对加锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的加锁接口发起的调用请求;线程库基于修改之后的加锁接口重新编译获得。
在某些实施例中,基于目标锁资源对解锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的解锁接口发起的调用请求;线程库基于修改之后的解锁接口重新编译获得。
本申请实施例通过修改c标准函数库中线程库中的加锁接口以及解锁接口,可以实现锁操作中的信息记录功能,从而无需修改应用源码,任何应用程序的线程即可以采用互斥锁机制占用或释放锁资源,同时可以减少数据记录量,基于记录卡信息可以快速定位获得死锁故障信息。
图3为本申请实施例提供的一种锁操作中的信息处理方法又一个实施例的流程图,图3示出了在一个实际应用中的执行方案,该方法可以包括以下几个步骤:
301:预先修改动态链接的线程库中的锁操作接口,并在操作系统重新编译线程库。
302:检测到基于目标锁资源,对加锁接口发起的调用请求,调用加锁接口以执行如下步骤303~步骤304的操作。
303:查找目标锁资源的持有者信息,并保存至记录信息中。
304:将目标锁资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息;
305:检测基于目标锁资源对解锁接口发起的调用请求,调用解锁接口执行步骤306的操作:
306:从记录信息中删除持有者信息,并可以记录删除者信息。
307:检测目标锁资源发生死锁,将目标锁资源对应的记录信息保存至本地文件。
308:向相关人员发送包含本地文件的死锁故障通知。
图4为本申请实施例提供的一种锁操作中的信息处理装置,包括:
查找模块401,用于检测到针对目标锁资源的加锁操作,查找目标锁资源的持有者信息,并保存至记录信息中;
第一记录模块402,用于将目标索资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息;
第二记录吗模块403,用于检测到针对目标锁资源的解锁操作,从记录信息中删除持有者信息;
记录信息在目标所资源发生死锁时,用于确定目标锁资源的持有者信息。
在某些实施例中,该第二记录模块还用于检测到针对目标锁资源的解锁操作,从记录信息中删除持有者信息之后,在记录信息中记录删除者信息。
在某些实施例中,该装置还可以包括:
资源分配模块,用于若目标锁资源对应记录信息中不存在持有者信息,将目标锁资源分配给加锁操作的申请者;
若目标锁资源对应记录中存在持有者信息,检测目标锁资源被释放之后,确定是否将目标锁资源分配给加锁操作的申请者,若是,将目标锁资源分配给加锁操作的申请者。
在某些实施例中,该装置还可以包括:
故障处理模块,用于检测目标锁资源是否发生死锁;在目标锁资源发生死锁时,基于目标锁资源对应的记录信息,向相关人员发送死锁故障通知。
在某些实施例中,故障处理模块检测操作系统是否发生死锁包括:
判断申请获取目标锁资源的任一申请者的访问申请是否未在规定时间内响应;若是,确定目标锁资源发生死锁。
在某些实施例中,查找模块具体用于检测基于目标锁资源对加锁接口发起的调用请求,调用加锁接口查找目标锁资源的持有者信息,并保存至记录信息中;
第一记录模块具体用于调用加锁接口将目标索资源分配给加锁操作的申请者之后,将记录信息中的持有者信息更新为申请者的申请者信息。
在某些实施例中,第二记录模块具体用于检测基于目标锁资源对解锁接口发起的调用请求,调用解锁接口从记录信息中删除持有者信息。
在某些实施例中查找模块检测基于目标锁资源对加锁接口发起的调用请求包括:检测基于目标锁资源,对动态链接的线程库中的加锁接口发起的调用请求;线程库基于修改之后的加锁接口重新编译获得;
在某些实施例中,第二记录模块检测基于目标锁资源对解锁接口发起的调用请求包括:检测基于目标锁资源,对动态链接的线程库中的解锁接口发起的调用请求;线程库基于修改之后的解锁接口重新编译获得。
在某些实施例中,查找模块用于查找目标锁资源对应记录信息中的持有者信息包括:从共享内存中查找目标锁资源对应的记录信息中的持有者信息;
故障处理模块在目标锁资源发生死锁时,基于所述目标锁资源对应的记录信息,向相关人员发送死锁故障通知包括:检测所述目标锁资源发生死锁时,将所述目标锁资源对应的记录信息保存至本地文件;向相关人员发送包含所述本地文件的死锁故障通知。
图4所述的信息处理装置可以执行图1所示实施例所述的信息处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的信息处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种计算机设备,如图5所示,该计算机设备包括存储组件501及处理组件502,所述存储组件501存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件502调用执行,以实现如前文任一个实施例中所述的锁操作中的信息处理方法。
其中,处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
该计算设备实际应用中可以为配置于车辆中的车机设备,实现人与车,车与外界(车与车)的信息通讯,可以配置不同车机应用,提高车载信息娱乐功能。
此外,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述任一实施例的锁操作中的信息处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种锁操作中的信息处理方法,其特征在于,包括:
检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中;
将所述目标锁资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;
检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;
所述记录信息在所述目标锁资源发生死锁时,用于确定死锁故障信息。
2.根据权利要求1所述的方法,其特征在于,所述检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息之后,所述方法还包括:
在所述记录信息中记录删除者信息。
3.根据权利要求1所述的方法,其特征在于,所述查找所述目标锁资源对应记录信息中的持有者信息之后,所述方法还包括:
若所述目标锁资源对应记录信息中不存在所述持有者信息,将所述目标锁资源分配给所述加锁操作的申请者;
若所述目标锁资源对应记录中存在所述持有者信息,检测所述目标锁资源被释放之后,确定是否将所述目标锁资源分配给所述加锁操作的申请者,若是,将所述目标锁资源分配给所述加锁操作的申请者。
4.根据权利要求1所述的方法,其特征在于,还包括:
检测所述目标锁资源是否发生死锁;
在所述目标锁资源发生死锁时,基于所述目标锁资源对应的记录信息,向相关人员发送死锁故障通知。
5.根据权利要求1所述的方法,其特征在于,所述检测操作系统是否发生死锁包括:
判断申请获取所述目标锁资源的任一申请者的访问申请是否未在规定时间内响应;若是,确定所述目标锁资源发生死锁。
6.根据权利要求1所述的方法,其特征在于,所述检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中包括:
检测基于目标锁资源对加锁接口发起的调用请求,调用所述加锁接口查找所述目标锁资源的持有者信息,并保存至记录信息中;
所述将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息包括:
调用所述加锁接口将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息。
7.根据权利要求1所述的方法,其特征在于,所述检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息包括:
检测基于所述目标锁资源对解锁接口发起的调用请求,调用所述解锁接口从所述记录信息中删除所述持有者信息。
8.根据权利要求6所述的方法,其特征在于,所述检测基于目标锁资源对加锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的加锁接口发起的调用请求;所述线程库基于修改之后的所述加锁接口重新编译获得。
9.根据权利要求7所述的方法,其特征在于,所述检测基于所述目标锁资源对解锁接口发起的调用请求包括:
检测基于目标锁资源,对动态链接的线程库中的解锁接口发起的调用请求;所述线程库基于修改之后的所述解锁接口重新编译获得。
10.根据权利要求4所述的方法,其特征在于,所述查找所述目标锁资源对应记录信息中的持有者信息包括:
从共享内存中查找所述目标锁资源对应的记录信息中的持有者信息;
所述在所述目标锁资源发生死锁时,基于所述目标锁资源对应的记录信息,向相关人员发送死锁故障通知包括:
检测所述目标锁资源发生死锁时,将所述目标锁资源对应的记录信息保存至本地文件;
向相关人员发送包含所述本地文件的死锁故障通知。
11.一种锁操作中的信息处理装置,其特征在于,包括:
查找模块,用于检测到针对目标锁资源的加锁操作,查找所述目标锁资源的持有者信息,并保存至记录信息中;
第一记录模块,用于将所述目标索资源分配给所述加锁操作的申请者之后,将所述记录信息中的持有者信息更新为所述申请者的申请者信息;
第二记录模块,用于检测到针对所述目标锁资源的解锁操作,从所述记录信息中删除所述持有者信息;
所述记录信息在所述目标所资源发生死锁时,用于确定所述目标锁资源的持有者信息。
12.一种计算设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,以执行如权利要求1~10任一项所述的锁操作中的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153050.XA CN115878336A (zh) | 2021-09-29 | 2021-09-29 | 锁操作中的信息处理方法、装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153050.XA CN115878336A (zh) | 2021-09-29 | 2021-09-29 | 锁操作中的信息处理方法、装置及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878336A true CN115878336A (zh) | 2023-03-31 |
Family
ID=85756289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153050.XA Pending CN115878336A (zh) | 2021-09-29 | 2021-09-29 | 锁操作中的信息处理方法、装置及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878336A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271148A (zh) * | 2023-11-21 | 2023-12-22 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
-
2021
- 2021-09-29 CN CN202111153050.XA patent/CN115878336A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271148A (zh) * | 2023-11-21 | 2023-12-22 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
CN117271148B (zh) * | 2023-11-21 | 2024-02-02 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831420A (zh) | 内核进程权限的确定方法及装置 | |
JP2019536153A (ja) | スマート・コントラクト処理方法及び装置 | |
CN109669858B (zh) | 程序死锁的测试方法、装置和设备 | |
US20090094419A1 (en) | Varying access parameters for processes to access memory addresses in response to detecting a condition related to a pattern of processes access to memory addresses | |
GB2513528A (en) | Method and system for backup management of software environments in a distributed network environment | |
CN113220535A (zh) | 程序异常的处理方法、装置、设备及存储介质 | |
US8132174B2 (en) | Concurrency management in cluster computing of business applications | |
KR102254159B1 (ko) | 운영체제 커널 메모리의 실시간 오류 검출 방법 | |
CN113672353B (zh) | 一种基于容器的任务执行方法及装置 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN115878336A (zh) | 锁操作中的信息处理方法、装置及计算设备 | |
CN105183799B (zh) | 一种权限管理的方法及客户端 | |
CN112612537A (zh) | 配置数据缓存方法、装置、设备及存储介质 | |
US8689230B2 (en) | Determination of running status of logical processor | |
CN113641628B (zh) | 数据质量检测方法、装置、设备及存储介质 | |
US7539678B2 (en) | Systems and methods for controlling access to an object | |
CN113849811A (zh) | 一种共享虚拟资源分析方法及装置 | |
US10402185B2 (en) | Precision locking a database server during the upgrade of a system landscape | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN115809150A (zh) | 一种分布式死锁检测方法、装置及电子设备 | |
CN114461409A (zh) | 一种互斥信号量异常阻塞辅助分析方法、系统及存储介质 | |
CN114647663A (zh) | 一种资源处理方法、装置、系统、电子设备及存储介质 | |
CN108628925B (zh) | 密钥写入的方法、密钥使用的方法 | |
CN114691445A (zh) | 集群故障处理方法、装置、电子设备及可读存储介质 | |
CN111491040A (zh) | 一种ip分配方法以及ip分配装置 |
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 |