CN117370036A - 并发访问的控制方法和相关装置 - Google Patents
并发访问的控制方法和相关装置 Download PDFInfo
- Publication number
- CN117370036A CN117370036A CN202311183317.9A CN202311183317A CN117370036A CN 117370036 A CN117370036 A CN 117370036A CN 202311183317 A CN202311183317 A CN 202311183317A CN 117370036 A CN117370036 A CN 117370036A
- Authority
- CN
- China
- Prior art keywords
- processor
- value
- identification
- shared resource
- control method
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了一种并发访问的控制方法和相关装置,该控制方法应用于第一处理器,第一处理器与一个或多个第二处理器被允许访问共享资源,该控制方法包括:读取第二处理器的标识,其中,第二处理器的标识为第一值时指示第二处理器正在访问共享资源,第二处理器的标识为第二值时指示第二处理器不在访问共享资源;判断读取到的第二处理器的标识为第一值还是第二值,其中,在读取到的第二处理器的标识为第一值的情况下进入睡眠状态,在读取到的第二处理器的标识为第二值的情况下访问共享资源。本公开实现了对多个独立处理器并发访问的有效控制。
Description
技术领域
本公开涉及对共享资源访问的技术领域,具体涉及一种并发访问的控制方法和相关装置。
背景技术
对于多个独立的处理器(例如多个独立的中央处理器(Central ProcessingUnit,简称CPU))、对称多处理器(Symmetric Multi-Processor,简称SMP)的多个核、单核中央处理器的多个线程,对共享资源的访问,必须要考虑并发的问题,这是由于并发的访问会导致竞态。
对于对称多处理器的多个核、单核中央处理器的多个线程,可以利用原子指令实现相应的锁机制(自旋锁、信号量、互斥锁等)来对并发访问进行控制,其中原子指令例如有连接加载(load-link,简称LL)或条件存储(store-conditional,简称SC)等。然而对于多个独立的处理器,并不容易实现共享的原子指令。但是,多个独立的处理器又同样可以使用相同的系统总线、可以同时访问相同的例如外设之类的共享资源。因此多个独立的处理器之间也需要并发访问的控制措施。
发明内容
为了解决上述技术问题,本公开提供了一种并发访问的控制方法和相关装置。
根据本公开第一方面,提供了一种并发访问的控制方法,应用于第一处理器,所述第一处理器与一个或多个第二处理器被允许访问共享资源,所述控制方法包括:
读取所述第二处理器的标识,其中,所述第二处理器的标识为第一值时指示所述第二处理器正在访问所述共享资源,所述第二处理器的标识为第二值时指示所述第二处理器不在访问所述共享资源;
判断读取到的所述第二处理器的标识为第一值还是第二值,其中,在读取到的所述第二处理器的标识为第一值的情况下进入睡眠状态,在读取到的所述第二处理器的标识为第二值的情况下访问所述共享资源。
可选地,所述第一处理器配置有执行次数且所述执行次数的初始值为0,在读取到的所述第二处理器的标识为第一值的情况下所述控制方法还包括:
在进入睡眠状态之前,将所述执行次数通过自加1而进行更新,并根据更新后的所述执行次数设置睡眠的执行时长;
在睡眠状态持续所述执行时长之后结束睡眠并返回读取所述第二处理器的标识的步骤。
可选地,所述第一处理器还配置有不同于所述第二处理器的退避时长,根据更新后的所述执行次数设置睡眠的执行时长,包括:
判断更新后的所述执行次数与所述退避时长的乘积是否小于最大退避时长;
以及,在更新后的所述执行次数与所述退避时长的乘积小于所述最大退避时长的情况下,将所述执行时长设置为更新后的所述执行次数与所述退避时长的乘积。
可选地,所述控制方法还包括:在更新后的所述执行次数与所述退避时长的乘积不小于所述最大退避时长的情况下,将所述执行时长设置为所述最大退避时长。
可选地,所述控制方法还包括:在读取所述第二处理器的标识之前,根据所述第一处理器的优先级配置所述退避时长,其中,较高的优先级对应较小的退避时长
可选地,读取所述第二处理器的标识,包括:将所述第一处理器的标识设置为第一值以指示所述第一处理器正在访问所述共享资源,之后读取所述第二处理器的标识;
在读取到的所述第二处理器的标识为第二值的情况下,所述控制方法还包括:在访问所述共享资源之后设置所述第一处理器的标识为第二值以指示所述第一处理器不在访问所述共享资源。
可选地,在读取到的所述第二处理器的标识为第一值的情况下,所述控制方法还包括:在进入睡眠状态之前,设置所述第一处理器的标识为第二值以指示所述第一处理器不在访问所述共享资源。
可选地,所述控制方法还包括:在读取所述第二处理器的标识之前,对所述第一处理器配置标识且所配置标识的初始值为第二值以指示所述第一处理器不在访问所述共享资源。
根据本公开第二方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现第一方面所述的任一种并发访问的控制方法。
根据本公开第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现第一方面所述的任一种并发访问的控制方法。
本公开的有益效果:
本公开提供的并发访问的控制方法应用于第一处理器,第一处理器与一个或多个第二处理器被允许访问共享资源,该控制方法包括:读取第二处理器的标识,其中,第二处理器的标识为第一值时指示第二处理器正在访问共享资源,第二处理器的标识为第二值时指示第二处理器不在访问共享资源;然后判断读取到的第二处理器的标识为第一值还是第二值,其中,在读取到的第二处理器的标识为第一值的情况下进入睡眠状态,在读取到的第二处理器的标识为第二值的情况下访问共享资源,因而第一处理器不会和其他允许访问共享资源的第二处理器同一时间访问共享资源,从而实现了多个独立处理器之间并发访问的有效控制。
本公开能够应当说明的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示出根据本公开一实施例的并发访问的控制方法的流程图;
图2示出一种示例性的情景中根据本公开一实施例的并发访问的控制方法的执行过程示意图;
图3示出根据本公开另一实施例的并发访问的控制方法的流程图;
图4示出根据本公开又一实施例的并发访问的控制方法的流程图;
图5示出一种示例性情景中一处理器根据本公开一实施例执行的并发访问的控制方法的流程图;
图6示出与图5同一情景中另一处理器根据本公开同一实施例执行的并发访问的控制方法的流程图;
图7示出根据本公开一个实施例的一种电子设备的结构示意图。
具体实施方式
为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的较佳实施例。但是,本公开可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本公开的公开内容的理解更加透彻全面。
本公开一个实施例提供了一种并发访问的控制方法,该控制方法应用于第一处理器,第一处理器与一个或多个第二处理器被允许访问共享资源。图1所示为该并发访问的控制方法的流程图。参照图1,该控制方法包括由第一处理器执行的如下步骤:
步骤S110,读取第二处理器的标识F2,其中,第二处理器的标识F2为第一值时指示第二处理器正在访问共享资源,第二处理器的标识F2为第二值时指示第二处理器不在访问共享资源。
步骤S120,判断读取到的第二处理器的标识F2为第一值还是第二值,其中,在读取到的第二处理器的标识F2为第一值的情况下执行步骤S130,在读取到的第二处理器的标识F2为第二值的情况下执行步骤S140。
步骤S130,进入睡眠状态。
步骤S140,访问共享资源。
具体地,本公开实施例中处理器睡眠或处于睡眠状态,皆指处理器不会对共享资源发起访问。上述第一处理器和各个第二处理器各自作为独立的处理器,第二处理器的标识F2可以存储在一个第一处理器能够读取的存储器中,该存储器内设置对应于各第二处理器的标志位来存储对应第二处理器的标识F2。一些示例中,第二处理器的标识F2为第一值,即第二处理器所对应标志位存储了二进制数值“1”;第二处理器的标识F2为第二值,即第二处理器所对应标志位存储了二进制数值“0”。
需要说明的是,本公开实施例中第一处理器和第二处理器是为了描述的目的而区分的。实践中,一目标处理器作为本公开实施例的第一处理器而执行本公开实施例提供的并发访问的控制方法的情况下,能够避免自身与允许访问共享资源的其他处理器同时访问共享资源,这里的其他处理器即作为本公开实施例中的第二处理器存在。当然,在任一其他处理器作为第一处理器而执行本公开实施例提供的并发访问的控制方法的情况下,上述目标处理器则作为本公开实施例中的第二处理器存在。
应当理解的是,允许访问共享资源的多个处理器在启动后各自皆执行本公开实施例提供的并发访问的控制方法,从而不会出现任意多个处理器同时访问共享资源的情况,这样有效避免了共享资源被并发访问所导致的竞态的出现。图2所示为处理器CPU1和处理器CPU2被允许访问共享资源的情况下根据本公开一个实施例的并发访问的控制方法的实施过程,二进制数值“1”示意处理器标识的第一值,二进制数值“0”示意处理器标识的第二值,其中,处理器CPU1会作为第一处理器而执行步骤SA1来读取处理器CPU2的标识F2,若处理器CPU2的标识F2=1则处理器CPU1执行步骤SA2而睡眠,若处理器CPU2的标识F2=0则处理器CPU1执行步骤SA3而访问共享资源;处理器CPU2也会作为第一处理器而执行步骤SB1来读取处理器CPU1的标识F1,若处理器CPU1的标识F1=1则处理器CPU2执行步骤SB2而睡眠,若处理器CPU1的标识F1=0则处理器CPU2执行步骤SB3而访问共享资源。在以下各实施例中,虽然描述第一处理器执行的并发访问的控制方法,但应当想到允许访问共享资源的第二处理器也执行同样的并发访问的控制方法。
下面对本公开实施例提供的由第一处理器执行的并发访问的控制方法进行详细描述。
一个可选的实施例中,第一处理器配置有执行次数C1且执行次数C1的初始值为0,如图3所示,在步骤S120中确定读取到的第二处理器的标识F2为第一值的情况下,并发访问的控制方法在步骤S130之前还包括:步骤S150,将执行次数C1通过自加1而进行更新,并根据更新后的执行次数C1设置睡眠的执行时长。该实施例中,上述步骤S130即进入睡眠状态而睡眠执行时长,且睡眠结束后返回步骤S110以通过第二处理器的标识F2确定第二处理器是否结束对共享资源的访问。由于睡眠的执行时长是根据更新后的执行次数C1设置的,因而各次确定读取到的第二处理器的标识F2为第一值(即确定第二处理器正在访问共享资源)的情况下睡眠的时长能够存在差异,这有利于第一处理器避免与第二处理器同时睡眠同时启动的情况的出现。
进一步,第一处理器还配置有退避时长T1,退避时长T1不同于第二处理器配置的退避时长T2,步骤S150中根据更新后的执行次数C1设置睡眠的执行时长,包括:判断更新后的执行次数C1与退避时长T1的乘积是否小于最大退避时长Tmax;以及,在更新后的执行次数C1与退避时长T1的乘积小于最大退避时长Tmax的情况下,设置执行时长为更新后的执行次数C1与退避时长T1的乘积,这样第一处理器睡眠的执行时长逐渐以执行次数C1的倍数进行增加。该实施例中,第二处理器也会在其更新后的执行次数C2与退避时长T2的乘积小于最大退避时长Tmax的情况下,设置睡眠的执行时长为更新后的执行次数C2与退避时长T2的乘积,即第二处理器睡眠的执行时长也会逐渐以执行次数C2的倍数进行增加。由于第一处理器的退避时长T1和第二处理器的退避时长T2并不相同,因而即使第一处理器的更新后的执行次数C1与第二处理器的更新后的执行次数C2相同的情况下第一处理器和第二处理器同时睡眠,第一处理器也不会与第二处理器同时启动乃至在下次同时睡眠。
进一步,第一处理器执行的并发访问的控制方法,还包括:在更新后的执行次数C1与退避时长T1的乘积不小于最大退避时长Tmax的情况下,将执行时长设置为最大退避时长Tmax,从而避免睡眠的执行时长随睡眠次数的增加而不断增加到太长,即睡眠的执行时长最大为Tmax。
上述步骤S150设置睡眠执行时长过程中涉及的退避时长T1,可以在步骤S110之前配置,具体地,第一处理器根据自身的优先级预先配置自身的退避时长T1,第一处理器的优先级越大则退避时长T1越小。同样,第二处理器也会根据自身的优先级预先配置自身的退避时长T2。这里第一处理器和第二处理器的优先级是指各自访问共享资源的优先级,若第一处理器访问共享资源的优先级大于第二处理器访问共享资源的优先级,则第一处理器的退避时长T1小于第二处理器的退避时长T2;反之,若第一处理器访问共享资源的优先级小于第二处理器访问共享资源的优先级,则第一处理器的退避时长T1大于第二处理器的退避时长T2。从而,允许访问共享资源的多个处理器中优先级较大的处理器由于睡眠的时长较短,而在准备访问共享资源之后具有更大概率能够访问到共享资源。
另一个可选的实施例中,如图4所示,步骤S110,读取第二处理器的标识F2,包括:将第一处理器的标识F1设置为第一值以指示第一处理器正在访问共享资源,之后读取第二处理器的标识F2;以及,在读取到的第二处理器的标识F2为第二值的情况下,第一处理器执行的控制方法在步骤S140的访问共享资源之后还包括:步骤S160,设置第一处理器的标识F1为第二值以指示第一处理器不在访问共享资源,即第一处理器释放了对共享资源的访问占用。
进一步,由第一处理器执行的并行访问的控制方法,在读取到的第二处理器的标识F2为第一值的情况下,还在步骤S130的进入睡眠状态之前包括:设置第一处理器的标识F1为第二值以指示第一处理器不在访问共享资源,从而不影响第二处理器在第一处理器睡眠时段内访问共享资源。具体地,可以在图3所示的步骤S150之前,将第一处理器的标识F1设置为第二值;也可以在步骤S150中将执行次数C1通过自加1而进行更新之后以及在根据更新后的执行次数C1设置睡眠的执行时长之前,将第一处理器的标识F1设置为第二值。
进一步,由第一处理器执行的并行访问的控制方法还包括:在步骤S110之前,对第一处理器配置上述标识F1且所配置标识F1的初始值为第二值以指示第一处理器不在访问共享资源。
本公开实施例中,第一处理器在准备访问共享资源的情况下,会将自身的标识F1设置为第一值,以示对共享资源的访问的申请;此后第一处理器在确定读取到的第二处理器的标识F2为第一值的情况下,会将自身的标识F1设置为第二值并进入睡眠状态,以示对访问共享资源的退避。因而,通过采用申请和退避机制相结合的方式实现了并发访问的控制,且具有简单、有效以及占用资源少的优势。
图5所示为处理器CPU1和处理器CPU2被允许访问共享资源的情况下处理器CPU1根据本公开一实施例执行的并发访问的控制方法的过程,图6所示为处理器CPU2根据本公开同一实施例执行的并发访问的控制方法的过程,其中,二进制数值“1”示意处理器标识的第一值,二进制数值“0”示意处理器标识的第二值,处理器标识只能为第一值和第二值中的一个。
参照图5,处理器CPU1执行步骤S14来确定读取到的处理器CPU2的标识F2==1这一条件是否成立。不成立的情况下意味着处理器CPU2正在访问共享资源,该情况下处理器CPU1执行步骤S15而访问共享资源,并在之后设置自身的标识F1=0以指示自身不在访问共享资源;成立的情况下意味着处理器CPU2不在访问共享资源,该情况下处理器CPU1执行步骤S17而使得自身的执行次数C1通过自加1而更新,然后设置自身的标识F1=0以指示自身不在访问共享资源,接着通过执行步骤S19、S1X或S1Z而睡眠,并之后通过执行步骤S1Y而设置自身的标识F1=1以准备再次对共享资源的访问。具体地,执行步骤S19、S1X或S1Z而睡眠,即执行步骤S19而判断执行次数C1与退避时长T1的乘积C1×T1是否小于最大退避时长Tmax,其中,小于最大退避时长Tmax的情况下处理器CPU1执行步骤S1X而睡眠C1×T1这一时长,不小于最大退避时长Tmax的情况下处理器CPU1执行步骤S1Z而睡眠最大退避时长Tmax。此外,处理器CPU1还在执行步骤S14之前执行步骤S13而初始化自身的执行次数C1,并在执行步骤S13之前执行步骤S12而设置自身的标识F1=1,以及,在执行步骤S12之前执行步骤S11而配置参数。这里的参数包括处理器CPU1的退避时长T1。
参照图6,处理器CPU2执行步骤S24来确定读取到的处理器CPU1的标识F1==1这一条件是否成立。不成立的情况下意味着处理器CPU1正在访问共享资源,该情况下处理器CPU2执行步骤S25而访问共享资源,并在之后设置自身的标识F2=0以指示自身不在访问共享资源;成立的情况下意味着处理器CPU1不在访问共享资源,该情况下处理器CPU2执行步骤S27而使得自身的执行次数C2通过自加1而更新,然后设置自身的标识F2=0以指示自身不在访问共享资源,接着通过执行步骤S29、S2X或S2Z而睡眠,并之后通过执行步骤S2Y而设置自身的标识F2=1以准备再次对共享资源的访问。具体地,执行步骤S29、S2X或S2Z而睡眠,即执行步骤S29而判断执行次数C2与退避时长T2的乘积C2×T2是否小于最大退避时长Tmax,其中,小于最大退避时长Tmax的情况下处理器CPU2执行步骤S2X而睡眠C2×T2这一时长,不小于最大退避时长Tmax的情况下处理器CPU2执行步骤S2Z而睡眠最大退避时长Tmax。此外,处理器CPU2还在执行步骤S24之前执行步骤S23而初始化自身的执行次数C2,并在执行步骤S23之前执行步骤S22而设置自身的标识F2=1,以及,在执行步骤S22之前执行步骤S21而配置参数。这里的参数包括处理器CPU2的退避时长T2。
图5和图6所示情景中处理器CPU1和处理器CPU2各自通过根据本公开同一实施例执行并发访问的控制方法而使得共享资源不会被同时访问,即有效实现了并发访问的控制来避免并发访问所导致的竞态。整个过程中,处理器只需标识、执行次数和退避时长这几个参量,因而占用资源较少。
相应于以上实施例提供的并发访问的控制方法,本公开另一实施例还提供了一种电子设备。图7所示为该电子设备的结构示意图。参照图7,该电子设备800包括处理器810,处理器810与其他处理器被允许访问共享资源,其他处理器可以设置在电子设备800之外的设备中。电子设备800还可以包括至少一个存储单元820以及连接不同系统组件(包括处理器810和存储单元820)的总线840。存储单元820可以包括易失性存储单元形式的可读介质,例如用来存储引导加载程序的随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括用来存储启动程序的只读存储单元(ROM)8203。存储单元820还可以包括存储一组程序模块8205的动态随机存储器/紧耦合存储器8204,程序模块8205包括但不限于:一个或者多个应用程序以及程序数据,这些应用程序以及程序数据使得电子设备800能够实现系统功能。需要说明的是,程序模块8205包括的部分程序被处理器810执行时实现上述并发访问的控制方法中各实施例的各个过程并能够达到相同的技术效果,处理器810即上述方法实施例中执行并发访问控制方法的第一处理器。
总线840可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或者多个使得用户能与该电子设备800交互的终端设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何传输设备通信。这种通信可以通过输入/输出(I/O)接口850进行,输入/输出接口850与总线840连接。此外,电子设备800还可以通过连接总线840的网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信,该通信基于通信协议进行。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读的可读存储介质中,并由处理器进行加载和执行。为此,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时可实现上述并发访问的控制方法中各实施例的各个过程。其中,计算机可读存储介质,如U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
由于该可读存储介质所存储的程序,可以执行本公开实施例所提供的任一种并发访问的控制方法中的步骤,因此,可以实现本公开实施例所提供的任一种并发访问的控制方法所能实现的有益效果,详见前面的实施例,在此不再赘述。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
需要说明的是,本说明书中在对各个实施例进行描述时,均重点说明的是与其他实施例的不同之处,而对于各个实施例之间相同或相似的部分可互相参考进行理解。对于各装置实施例而言,由于其与方法实施例基本相似,因此相关之处可参考对方法实施例部分的说明。由于各装置实施例具有上述方法实施例所能实现的有益效果,详见前面的实施例,在此不再赘述。
此外,需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
最后应说明的是:术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。并且,以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种并发访问的控制方法,应用于第一处理器,所述第一处理器与一个或多个第二处理器被允许访问共享资源,所述控制方法包括:
读取所述第二处理器的标识,其中,所述第二处理器的标识为第一值时指示所述第二处理器正在访问所述共享资源,所述第二处理器的标识为第二值时指示所述第二处理器不在访问所述共享资源;
判断读取到的所述第二处理器的标识为第一值还是第二值,其中,在读取到的所述第二处理器的标识为第一值的情况下进入睡眠状态,在读取到的所述第二处理器的标识为第二值的情况下访问所述共享资源。
2.根据权利要求1所述的控制方法,其中,所述第一处理器配置有执行次数且所述执行次数的初始值为0,在读取到的所述第二处理器的标识为第一值的情况下所述控制方法还包括:
在进入睡眠状态之前,将所述执行次数通过自加1而进行更新,并根据更新后的所述执行次数设置睡眠的执行时长;
在睡眠状态持续所述执行时长之后结束睡眠并返回读取所述第二处理器的标识的步骤。
3.根据权利要求2所述的控制方法,其中,所述第一处理器还配置有不同于所述第二处理器的退避时长,根据更新后的所述执行次数设置睡眠的执行时长,包括:
判断更新后的所述执行次数与所述退避时长的乘积是否小于最大退避时长;
以及,在更新后的所述执行次数与所述退避时长的乘积小于所述最大退避时长的情况下,将所述执行时长设置为更新后的所述执行次数与所述退避时长的乘积。
4.根据权利要求3所述的控制方法,还包括:在更新后的所述执行次数与所述退避时长的乘积不小于所述最大退避时长的情况下,将所述执行时长设置为所述最大退避时长。
5.根据权利要求3所述的控制方法,还包括:在读取所述第二处理器的标识之前,根据所述第一处理器的优先级配置所述退避时长,其中,较高的优先级对应较小的退避时长。
6.根据权利要求2所述的控制方法,其中,
读取所述第二处理器的标识,包括:将所述第一处理器的标识设置为第一值以指示所述第一处理器正在访问所述共享资源,之后读取所述第二处理器的标识;
在读取到的所述第二处理器的标识为第二值的情况下,所述控制方法还包括:在访问所述共享资源之后设置所述第一处理器的标识为第二值以指示所述第一处理器不在访问所述共享资源。
7.根据权利要求6所述的控制方法,其中,
在读取到的所述第二处理器的标识为第一值的情况下,所述控制方法还包括:在进入睡眠状态之前,设置所述第一处理器的标识为第二值以指示所述第一处理器不在访问所述共享资源。
8.根据权利要求6所述的控制方法,还包括:在读取所述第二处理器的标识之前,对所述第一处理器配置标识且所配置标识的初始值为第二值以指示所述第一处理器不在访问所述共享资源。
9.一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1-8中任一项所述的并发访问的控制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如权利要求1-8中任一项所述的并发访问的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183317.9A CN117370036A (zh) | 2023-09-14 | 2023-09-14 | 并发访问的控制方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183317.9A CN117370036A (zh) | 2023-09-14 | 2023-09-14 | 并发访问的控制方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370036A true CN117370036A (zh) | 2024-01-09 |
Family
ID=89406788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311183317.9A Pending CN117370036A (zh) | 2023-09-14 | 2023-09-14 | 并发访问的控制方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370036A (zh) |
-
2023
- 2023-09-14 CN CN202311183317.9A patent/CN117370036A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411646B2 (en) | Booting secondary processors in multicore system using kernel images stored in private memory segments | |
WO2020024408A1 (zh) | 测试装置、测试的方法及存储介质 | |
WO2020024405A1 (zh) | 基于分布式协调的测试方法、装置、服务器及存储介质 | |
US10331499B2 (en) | Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads | |
US11194588B2 (en) | Information handling systems and method to provide secure shared memory access at OS runtime | |
US9747210B2 (en) | Managing a lock to a resource shared among a plurality of processors | |
CN110704112B (zh) | 在区块链中并发执行交易的方法和装置 | |
US20130014120A1 (en) | Fair Software Locking Across a Non-Coherent Interconnect | |
CN107341054B (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN114580344A (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
JP6941154B2 (ja) | ワークフローベースのオブジェクト破棄 | |
WO2014202009A1 (zh) | 一种众核系统的任务管理方法和装置 | |
CN116541085B (zh) | 一种Android/Linux融合方法、装置、设备及存储介质 | |
CN113806031B (zh) | 通过对象锁保护资源的方法和装置 | |
US11263061B2 (en) | Efficient and scalable use of shared resources | |
WO2024208268A1 (zh) | 计算设备中访问tpm的方法和计算设备 | |
CN111045789B (zh) | 一种虚拟机开机方法、装置及电子设备和存储介质 | |
CN117370036A (zh) | 并发访问的控制方法和相关装置 | |
US20170286182A1 (en) | Identifying Enhanced Synchronization Operation Outcomes to Improve Runtime Operations | |
WO2006013158A2 (en) | Managing resources in a data processing system | |
WO2007088582A1 (ja) | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 | |
US8935700B2 (en) | Efficient lock hand-off in a symmetric multiprocessor system | |
US20100058044A1 (en) | Multiprocessor communication device and methods thereof | |
CN114327828B (zh) | 一种共享数据的无锁并发访问方法、装置、设备及介质 | |
CN117687744A (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 |