CN1920780A - 访问临界区的方法和系统 - Google Patents
访问临界区的方法和系统 Download PDFInfo
- Publication number
- CN1920780A CN1920780A CN 200610111226 CN200610111226A CN1920780A CN 1920780 A CN1920780 A CN 1920780A CN 200610111226 CN200610111226 CN 200610111226 CN 200610111226 A CN200610111226 A CN 200610111226A CN 1920780 A CN1920780 A CN 1920780A
- Authority
- CN
- China
- Prior art keywords
- critical section
- write
- read
- writing
- 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.)
- Granted
Links
Images
Abstract
本发明公开了两种访问临界区的方法,包括:预先设置用于指示是否有写进程在等待的写优先标志位,当CPU准备向临界区写入数据时,若检测到当前临界区已加读锁,且写优先标志位指示无写进程在等待,则设置写优先标志位为指示有写进程在等待,并在所述读锁释放后,设置写优先标志位为指示无写进程在等待,并进入临界区;当CPU准备从临界区读取数据时,若根据该写优先标志位检测到同时有写进程在等待,则该写进程优先。本发明同时公开了两种访问临界区的系统,包括:CPU、读写锁模块和写优先标志位存储模块。本发明使得对临界区的写操作可以及时得到响应,满足了多核系统中实时性要求较高的写操作的要求。
Description
技术领域
本发明涉及数据通信技术领域,具体涉及在多核系统中访问临界区的方法和系统。
背景技术
在多核系统中通过自旋锁(Spinlock)实现多中央处理单元(CPU)并发运行互斥访问临界资源的要求。读写锁(read write lock)是自旋锁的一个变形,自旋锁一次只能有一个进程:读进程或写进程进入临界区,对临界区的操作是串行操作,而对读写锁而言,读进程可以并发执行,写进程则不允许并发执行,在读进程或写进程执行过程中,另外一种进程不允许执行即:读进程和写进程不能同时执行。
以linux中针对无互锁流水线级的微处理机(MIPS)的读写锁实现方案为例,对现有的读写锁数据结构进行说明:
在linux 2.6.9中给出了针对MIPS的读写锁数据结构,具体如下:
typedef struct{
volatile unsigned int lock;
}rwlock_t;
其中,无符号整数类型的lock表示读写锁的锁值,读写锁共16位,其中,第0~14位表示当前临界区所加的读锁的个数,第15位为写锁标志位。因此,当lock的值在(0,0x7FFF]时,表示当前临界区加读锁,且lock的值即为当前临界区所加的读锁的个数;当lock的值为0x8000时,表示当前临界区加写锁。
图1是现有的从临界区读取数据的流程图,如图1所示,其具体步骤如下:
步骤101:CPU准备从临界区读取数据。
步骤102:CPU判断临界区是否已加锁,若是,执行步骤103;否则,执行步骤104。
步骤103:CPU判断临界区已加读锁还是写锁,若已加读锁,执行步骤104;若已加写锁,执行步骤105。
步骤104:CPU将临界区的读写锁的锁值加1,开始从临界区读取数据,本流程结束。
步骤105:CPU等待至临界区的写锁释放即:读写锁的写锁标志位由1变为0时,将临界区的读写锁的锁值加1,开始从临界区读取数据。
图2是现有的向临界区写入数据的流程图,如图2所示,其具体步骤如下:
步骤201:CPU准备向临界区写入数据。
步骤202:CPU判断临界区是否已加锁,若是,执行步骤203;否则,执行步骤204。
步骤203:CPU等待至临界区的读写锁释放即:读写锁的锁值为0时,将读写锁的写锁标志位置为1,并向临界区写入数据,本流程结束。
无论临界区已加读锁还是已加写锁,只要临界区的读写锁还未全部释放即:读写锁的锁值不为0,CPU就无法向临界区写入数据。
步骤204:CPU将临界区的读写锁的写锁标志位置为1,开始向临界区写入数据。
可以看出:当CPU要从临界区读取数据时,若临界区已加读锁,则读进程仍可进入临界区,若临界区已加写锁,则须等待至写锁释放后读进程才能进入临界区;当CPU要向临界区写入数据时,无论临界区是否已加读锁还是写锁,都必须等待至读写锁完全释放后,写进程才能进入临界区,这样造成的问题是:当临界区的读写锁的锁值不为0时,若不停地有要求从临界区读取数据的读进程请求进入,则要求向临界区写入数据的写进程必须一直等待,直至读写锁的锁值为0时写进程才能进入临界区,当写进程比较紧急如:管理员要对多核系统进行实时性要求较高的写操作时,该要求就无法得到满足。
发明内容
本发明提供多核系统中访问临界区的方法和系统,已使得对临界区的写操作可以及时得到响应。
本发明的技术方案是这样实现的:
一种访问临界区的方法,预先设置用于指示是否有写进程在等待的写优先标志位,包括:
CPU准备向临界区写入数据,当检测到当前临界区已加读锁、且写优先标志位指示无写进程在等待时,则将写优先标志位设置为指示有写进程在等待;在所述读锁释放后,将写优先标志位设置为无写进程在等待,并向临界区写入数据。
所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到当前临界区已加读锁、且写优先标志位指示有写进程在等待时,则在所述读锁释放后,CPU对应的写进程与所述正在等待的写进程进行进入临界区的竞争,若竞争成功,CPU将写优先标志位设置为无写进程在等待,并向临界区写入数据;若竞争失败,CPU对应的写进程继续等待。
所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到当前临界区已加写锁时,在该写锁释放后,向临界区写入数据。
所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到临界区未加锁时,直接向临界区写入数据。
所述方法进一步包括:CPU准备从临界区读取数据,当检测到当前临界区已加读锁且写优先标志位指示有写进程在等待时,则依次等待所述读锁释放、等待所述正在等待的写进程进入临界区、等待写锁释放,从临界区读取数据。
所述设置写优先标志位包括:在临界区的读写锁中设置写优先标志位。
一种访问临界区的方法,预先设置用于指示是否有写进程在等待的写优先标志位,包括:
CPU准备从临界区读取数据,当检测到当前临界区已加读锁且写优先标志位指示有写进程在等待时,依次等待所述读锁释放、等待所述正在等待的写进程进入临界区、等待写锁释放,从临界区读取数据。
所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区加读锁、且写优先标志位指示无写进程在等待时,直接从临界区读取数据。
所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区加写锁时,在该写锁释放后,从临界区读取数据。
所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区未加锁时,直接从临界区读取数据。
一种访问临界区的系统,包括:CPU、读写锁模块和写优先标志位存储模块,其中:
CPU,用于准备向临界区写入数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加读锁、且从写优先标志位存储模块读取的写优先标志位的值指示无写进程在等待时,将写优先标志位存储模块存储的写优先标志位的值设置为指示有写进程在等待,并在根据从读写锁模块读取的读写锁值检测到读锁释放后,将写优先标志位存储模块存储的写优先标志位的值设置为指示无写进程在等待,并向临界区写入数据;
读写锁模块,用于存储临界区的读写锁值,并根据进入到临界区的读、写进程和临界区释放的读、写锁,更改读写锁值;
写优先标志位存储模块,用于存储写优先标志位的值,根据CPU的操作,更改写优先标志位的值。
所述CPU进一步用于,准备向临界区写入数据,当检测到当前临界区已加读锁、且从写优先标志位存储模块读取的写优先标志位的值指示有写进程在等待时,则在根据从读写锁模块读取的读写锁值检测到所述读锁释放后,与所述正在等待的写进程进行进入临界区的竞争,若竞争成功,将写优先标志位存储模块存储的写优先标志位的值设置为无写进程在等待,并向临界区写入数据;若竞争失败,继续等待。
所述CPU进一步用于,准备向临界区写入数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加写锁时,在根据从读写锁模块读取的读写锁值检测到写锁释放后,向临界区写入数据。
所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到无写进程在等待时,直接从临界区读取数据。
所述写优先标志位存储模块位于读写锁模块之内。
一种访问临界区的系统,包括:CPU、读写锁模块和写优先标志位存储模块,其中:
CPU,用于准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到有写进程在等待时,在根据从读写锁模块读取的读写锁值,依次检测到读锁释放、正在等待的写进程进入临界区、写锁释放时,从临界区读取数据;
读写锁模块,用于存储临界区的读写锁值,并根据进入到临界区的读、写进程和临界区释放的读、写锁,更改读写锁值;
写优先标志位存储模块,用于存储写优先标志位的值。
所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到无写进程在等待时,则直接从临界区读取数据。
所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加写锁时,在根据从读写锁模块读取的读写锁值检测到写锁释放后,从临界区读取数据。
与现有技术相比,本发明通过定义用于指示是否有写进程在等待的写优先标志位,当CPU要从临界区读取数据时,若根据写优先标志位检测到同时有写进程在等待,则写进程优先进入临界区;当CPU要向临界区写入数据时,若检测到临界区已加读锁,且写优先标志位指示无写进程在等待,则设置写优先标志位为指示有写进程在等待,以使得在所述读锁释放后,能够及时进入临界区,使得对临界区的写操作可以及时得到响应,满足了多核系统中实时性要求较高的写操作的要求。
附图说明
图1为现有的在多核系统中从临界区读取数据的流程图;
图2为现有的在多核系统中向临界区写入数据的流程图;
图3为本发明实施例提供的在多核系统中从临界区读取数据的流程图;
图4为本发明实施例提供的在多核系统中向临界区写入数据的流程图;
图5为本发明实施例提供的应用在多核系统中的临界区访问的系统组成图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图3为本发明实施例提供的在多核系统中,从临界区读取数据的流程图,如图3所示,其具体步骤如下:
步骤301:预先设置一个用于指示当前是否有写进程正在等待进入临界区的写优先标志位。
例如:对于支持Linux的MIPS,可以将读写锁的第14位设为写优先标志位,当写优先标志位为1时即:读写锁的值在[0x4000,0x7FFF]时,表示当前有写进程在等待,若同时有读进程在等待,则该写进程应优先进入临界区。
或者,也可在读写锁之外,单独设置一个写优先标志位,并初始化该写优先标志位的值为0。
步骤302:CPU准备从临界区读取数据。
步骤303:CPU根据临界区的读写锁的锁值,判断临界区是否已加锁,若是,执行步骤304;否则,执行步骤307。
只要读写锁的锁值不为0,就表示临界区已加锁。
步骤304:CPU判断临界区已加读锁还是写锁,若已加读锁,执行步骤305;若已加写锁,执行步骤308。
写锁标志位为0表示临界区加读锁,写锁标志位为1表示临界区加写锁。
步骤305:CPU判断写优先标志位是否指示已有写进程在等待,若是,执行步骤306;否则,执行步骤307。
步骤306:CPU依次等待当前的读锁释放、等待正在等待的写进程进入临界区、等待写锁释放,然后CPU将读写锁的锁值加1,开始从临界区读取数据,本流程结束。
例如:对于支持linux的MIPS,若将读写锁的第14位设为写优先标志位,则:本步骤中,CPU首先会等待至读写锁的锁值变为0x4000即:第14位为1,其余位为0,然后等待至读写锁的锁值变为0x8000即:第15位为1,其余位为0,然后等待至读写锁的锁值变为0,此时,CPU可以从临界区读取数据。
步骤307:CPU将读写锁的锁值加1,开始从临界区读取数据,本流程结束。
步骤308:CPU等待当前的写锁释放,将读写锁的锁值加1,开始从临界区读取数据,本流程结束。
图4为本发明实施例提供的在多核系统中向临界区写入数据的流程图,如图4所示,其具体步骤如下:
步骤401:预先设置一个用于指示当前是否有写进程正在等待进入临界区的写优先标志位。
写优先标志位的设置方式与步骤301相同。
步骤402:CPU要向临界区写入数据。
步骤403:CPU根据临界区的读写锁的锁值,判断临界区是否已加锁,若是,执行步骤405;否则,执行步骤404。
步骤404:CPU将读写锁的写锁标志位置为1,然后向临界区写入数据,本流程结束。
步骤405:CPU判断临界区已加读锁还是写锁,若已加读锁,执行步骤406;若已加写锁,执行步骤409。
步骤406:CPU判断写优先标志位是否指示已有写进程在等待,若是,执行步骤407;否则,执行步骤408。
步骤407:CPU等待至读锁释放,CPU对应的写进程与正在等待的写进程进行进入临界区的竞争,若竞争成功,CPU将写优先标志位置为0,并向临界区写入数据,本流程结束;若竞争失败,CPU对应的写进程继续等待,本流程结束。
步骤408:CPU将写优先标志位置为1,然后等待读锁释放,将写锁标志位置为1,将写优先标志位置为0,并向临界区写入数据,本流程结束。
步骤409:CPU等待当前的写锁释放,将读写锁的写锁标志位置为1,向临界区写入数据,本流程结束。
若临界区的写锁释放时,同时有读进程和写进程在等待,则等待的读进程和写进程通过竞争决定谁先进入临界区。
图5为本发明实施例提供的应用在多核系统中的临界区访问系统组成图,如图5所示,其主要包括:CPU51、读写锁模块52和写优先标志位存储模块53,其中:
CPU51:用于在准备从临界区读取数据时,根据从读写锁模块52读取的读写锁值,判断临界区是否已加锁,若未加锁,则直接从临界区读取数据;
若已加读锁,则根据从写优先标志位存储模块53读取的写优先标志位的值,判断是否有写进程在等待,若有,则根据从读写锁模块52读取的读写锁值检测到当前读锁释放、且正在等待的写进程进入临界区、且写锁释放后,从临界区读取数据;若没有,则直接从临界区读取数据;
若已加写锁,则根据从读写锁模块52读取的读写锁值检测到当前写锁释放后,从临界区读取数据。
进一步地,CPU51用于在准备向临界区写入数据时,根据从读写锁模块52读取的读写锁值,判断临界区是否已加锁,若未加锁,则直接向临界区写入数据;
若已加读锁且从写优先标志位存储模块53读取的写优先标志位的值为1,则在根据从读写锁模块52读取的读写锁值检测到当前读锁释放后,与正在等待的其它写进程进行进入临界区的竞争,若自身竞争成功,将写优先标志位存储模块54存储的写优先标志位置为0,并向临界区写入数据;若竞争失败,则继续等待。
若已加读锁且从写优先标志位存储模块53读取的写优先标志位的值为0,则将写优先标志位存储模块53的写优先标志位置为1、并在当前读锁释放后,将写优先标志位存储模块54的写优先标志位置为0,并向临界区写入数据;
若已加写锁,则根据从读写锁模块53读取的读写锁值检测到当前写锁释放后,向临界区写入数据。
读写锁模块52:用于存储临界区的读写锁的锁值,并根据进入到临界区的CPU51的读进程或写进程、以及临界区释放的读、写锁,更改读写锁的锁值。
写优先标志位存储模块53:用于存储写优先标志位的值,并根据CPU51的操作更改写优先标志位的值。
写优先标志位存储模块53可独立于读写锁模块52之外,也可位于读写锁模块52之中。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1、一种访问临界区的方法,其特征在于,预先设置用于指示是否有写进程在等待的写优先标志位,该方法包括:
中央处理单元CPU准备向临界区写入数据,当检测到当前临界区已加读锁、且写优先标志位指示无写进程在等待时,则将写优先标志位设置为指示有写进程在等待;在所述读锁释放后,将写优先标志位设置为无写进程在等待,并向临界区写入数据。
2、如权利要求1所述的访问临界区的方法,其特征在于,所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到当前临界区已加读锁、且写优先标志位指示有写进程在等待时,则在所述读锁释放后,CPU对应的写进程与所述正在等待的写进程进行进入临界区的竞争,若竞争成功,CPU将写优先标志位设置为无写进程在等待,并向临界区写入数据;若竞争失败,CPU对应的写进程继续等待。
3、如权利要求1所述的访问临界区的方法,其特征在于,所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到当前临界区已加写锁时,在该写锁释放后,向临界区写入数据。
4、如权利要求1所述的访问临界区的方法,其特征在于,所述CPU准备向临界区写入数据之后进一步包括:当CPU检测到临界区未加锁时,直接向临界区写入数据。
5、如权利要求1所述的访问临界区的方法,其特征在于,所述方法进一步包括:CPU准备从临界区读取数据,当检测到当前临界区已加读锁且写优先标志位指示有写进程在等待时,则依次等待所述读锁释放、等待所述正在等待的写进程进入临界区、等待写锁释放,从临界区读取数据。
6、如权利要求1至5中任一项所述的访问临界区的方法,其特征在于,所述设置写优先标志位包括:在临界区的读写锁中设置写优先标志位。
7、一种访问临界区的方法,其特征在于,预先设置用于指示是否有写进程在等待的写优先标志位,该方法包括:
CPU准备从临界区读取数据,当检测到当前临界区已加读锁且写优先标志位指示有写进程在等待时,依次等待所述读锁释放、等待所述正在等待的写进程进入临界区、等待写锁释放,从临界区读取数据。
8、如权利要求7所述的访问临界区的方法,其特征在于,所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区加读锁、且写优先标志位指示无写进程在等待时,直接从临界区读取数据。
9、如权利要求7所述的访问临界区的方法,其特征在于,所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区加写锁时,在该写锁释放后,从临界区读取数据。
10、如权利要求7所述的访问临界区的方法,其特征在于,所述CPU准备从临界区读取数据之后进一步包括:当CPU检测到当前临界区未加锁时,直接从临界区读取数据。
11、一种访问临界区的系统,其特征在于,包括:CPU、读写锁模块和写优先标志位存储模块,其中:
CPU,用于准备向临界区写入数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加读锁、且从写优先标志位存储模块读取的写优先标志位的值指示无写进程在等待时,将写优先标志位存储模块存储的写优先标志位的值设置为指示有写进程在等待,并在根据从读写锁模块读取的读写锁值检测到读锁释放后,将写优先标志位存储模块存储的写优先标志位的值设置为指示无写进程在等待,并向临界区写入数据;
读写锁模块,用于存储临界区的读写锁值,并根据进入到临界区的读、写进程和临界区释放的读、写锁,更改读写锁值;
写优先标志位存储模块,用于存储写优先标志位的值,根据CPU的操作,更改写优先标志位的值。
12、如权利要求11所述的访问临界区的系统,其特征在于,所述CPU进一步用于,准备向临界区写入数据,当检测到当前临界区已加读锁、且从写优先标志位存储模块读取的写优先标志位的值指示有写进程在等待时,则在根据从读写锁模块读取的读写锁值检测到所述读锁释放后,与所述正在等待的写进程进行进入临界区的竞争,若竞争成功,将写优先标志位存储模块存储的写优先标志位的值设置为无写进程在等待,并向临界区写入数据;若竞争失败,继续等待。
13、如权利要求11所述的访问临界区的系统,其特征在于,所述CPU进一步用于,准备向临界区写入数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加写锁时,在根据从读写锁模块读取的读写锁值检测到写锁释放后,向临界区写入数据。
14、如权利要求11所述的访问临界区的系统,其特征在于,所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到无写进程在等待时,直接从临界区读取数据。
15、如权利要求11至14中任一项所述的访问临界区的系统,其特征在于,所述写优先标志位存储模块位于读写锁模块之内。
16、一种访问临界区的系统,其特征在于,包括:CPU、读写锁模块和写优先标志位存储模块,其中:
CPU,用于准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区已加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到有写进程在等待时,在根据从读写锁模块读取的读写锁值,依次检测到读锁释放、正在等待的写进程进入临界区、写锁释放时,从临界区读取数据;
读写锁模块,用于存储临界区的读写锁值,并根据进入到临界区的读、写进程和临界区释放的读、写锁,更改读写锁值;
写优先标志位存储模块,用于存储写优先标志位的值。
17、如权利要求16所述的访问临界区的系统,其特征在于,所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加读锁、且根据从写优先标志位存储模块读取的写优先标志位的值检测到无写进程在等待时,则直接从临界区读取数据。
18、如权利要求16所述的访问临界区的系统,其特征在于,所述CPU进一步用于,准备从临界区读取数据,当根据从读写锁模块读取的读写锁值检测到当前临界区加写锁时,在根据从读写锁模块读取的读写锁值检测到写锁释放后,从临界区读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101112264A CN100476738C (zh) | 2006-08-15 | 2006-08-15 | 访问临界区的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101112264A CN100476738C (zh) | 2006-08-15 | 2006-08-15 | 访问临界区的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1920780A true CN1920780A (zh) | 2007-02-28 |
CN100476738C CN100476738C (zh) | 2009-04-08 |
Family
ID=37778510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101112264A Expired - Fee Related CN100476738C (zh) | 2006-08-15 | 2006-08-15 | 访问临界区的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100476738C (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470627B (zh) * | 2007-12-29 | 2011-06-08 | 北京天融信网络安全技术有限公司 | 一种mips平台下并行多核配置锁的实现方法 |
CN101650646B (zh) * | 2009-09-22 | 2012-02-08 | 杭州华三通信技术有限公司 | 一种共享数据一致性的实现方法及装置 |
CN102662747A (zh) * | 2012-04-23 | 2012-09-12 | 深圳市融创天下科技股份有限公司 | 一种线程访问临界区的方法、系统和终端设备 |
CN103150149A (zh) * | 2013-03-26 | 2013-06-12 | 华为技术有限公司 | 处理数据库重做数据的方法和装置 |
CN105224251A (zh) * | 2015-09-28 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于Linux的读写锁优化方法和系统 |
CN105824709A (zh) * | 2016-03-11 | 2016-08-03 | 浙江大华技术股份有限公司 | 一种临界区访问方法及装置 |
CN106846142A (zh) * | 2015-12-07 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN107239415A (zh) * | 2016-03-28 | 2017-10-10 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
CN107291371A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种读写锁的实现方法及装置 |
CN107704325A (zh) * | 2016-08-08 | 2018-02-16 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN108694152A (zh) * | 2017-04-11 | 2018-10-23 | 上海福赛特机器人有限公司 | 多核间的通信系统、基于该系统的通信控制方法及服务器 |
CN109032522A (zh) * | 2018-07-25 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据读取方法以及固态硬盘 |
CN109271260A (zh) * | 2018-08-28 | 2019-01-25 | 百度在线网络技术(北京)有限公司 | 临界区加锁方法、装置、终端及存储介质 |
CN111143080A (zh) * | 2019-12-31 | 2020-05-12 | 联想(北京)有限公司 | 一种读写锁优化方法、装置、系统及存储介质 |
CN111552552A (zh) * | 2020-04-28 | 2020-08-18 | 深圳鼎智通讯股份有限公司 | 一种基于Cortex-M3核的单片机临界区访问方法 |
CN113111995A (zh) * | 2020-01-09 | 2021-07-13 | 北京君正集成电路股份有限公司 | 一种缩短模型推理和模型后处理运行时间的方法 |
-
2006
- 2006-08-15 CN CNB2006101112264A patent/CN100476738C/zh not_active Expired - Fee Related
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470627B (zh) * | 2007-12-29 | 2011-06-08 | 北京天融信网络安全技术有限公司 | 一种mips平台下并行多核配置锁的实现方法 |
CN101650646B (zh) * | 2009-09-22 | 2012-02-08 | 杭州华三通信技术有限公司 | 一种共享数据一致性的实现方法及装置 |
CN102662747A (zh) * | 2012-04-23 | 2012-09-12 | 深圳市融创天下科技股份有限公司 | 一种线程访问临界区的方法、系统和终端设备 |
US10387258B2 (en) | 2013-03-26 | 2019-08-20 | Huawei Technologies Co., Ltd. | Method and apparatus for processing redo data in database |
CN103150149A (zh) * | 2013-03-26 | 2013-06-12 | 华为技术有限公司 | 处理数据库重做数据的方法和装置 |
CN103150149B (zh) * | 2013-03-26 | 2015-11-25 | 华为技术有限公司 | 处理数据库重做数据的方法和装置 |
CN105224251A (zh) * | 2015-09-28 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于Linux的读写锁优化方法和系统 |
CN105224251B (zh) * | 2015-09-28 | 2018-09-25 | 浪潮(北京)电子信息产业有限公司 | 一种基于Linux的读写锁优化方法和系统 |
CN106846142A (zh) * | 2015-12-07 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN106846142B (zh) * | 2015-12-07 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN105824709A (zh) * | 2016-03-11 | 2016-08-03 | 浙江大华技术股份有限公司 | 一种临界区访问方法及装置 |
CN105824709B (zh) * | 2016-03-11 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种临界区访问方法及装置 |
CN107239415B (zh) * | 2016-03-28 | 2020-02-14 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
CN107239415A (zh) * | 2016-03-28 | 2017-10-10 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
CN107291371B (zh) * | 2016-03-31 | 2019-11-19 | 华为技术有限公司 | 一种读写锁的实现方法及装置 |
CN107291371A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种读写锁的实现方法及装置 |
CN107704325B (zh) * | 2016-08-08 | 2021-08-27 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN107704325A (zh) * | 2016-08-08 | 2018-02-16 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN108694152A (zh) * | 2017-04-11 | 2018-10-23 | 上海福赛特机器人有限公司 | 多核间的通信系统、基于该系统的通信控制方法及服务器 |
CN108694152B (zh) * | 2017-04-11 | 2021-07-13 | 实时侠智能控制技术有限公司 | 多核间的通信系统、基于该系统的通信控制方法及服务器 |
CN109032522B (zh) * | 2018-07-25 | 2021-06-29 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据读取方法以及固态硬盘 |
CN109032522A (zh) * | 2018-07-25 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据读取方法以及固态硬盘 |
CN109271260A (zh) * | 2018-08-28 | 2019-01-25 | 百度在线网络技术(北京)有限公司 | 临界区加锁方法、装置、终端及存储介质 |
CN111143080A (zh) * | 2019-12-31 | 2020-05-12 | 联想(北京)有限公司 | 一种读写锁优化方法、装置、系统及存储介质 |
CN113111995A (zh) * | 2020-01-09 | 2021-07-13 | 北京君正集成电路股份有限公司 | 一种缩短模型推理和模型后处理运行时间的方法 |
CN111552552A (zh) * | 2020-04-28 | 2020-08-18 | 深圳鼎智通讯股份有限公司 | 一种基于Cortex-M3核的单片机临界区访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100476738C (zh) | 2009-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1920780A (zh) | 访问临界区的方法和系统 | |
CN1154928C (zh) | 用于多任务设施信息处理系统的资源管理方法和设备 | |
CN1924816A (zh) | 提高多核系统访问临界资源速度的方法和装置 | |
CN1851635A (zh) | 对廉价磁盘冗余阵列进行读写操作的方法和系统 | |
CN100337207C (zh) | 一种信号量死锁的检测方法 | |
CN1908903A (zh) | 执行作业步的系统和方法以及计算机产品 | |
CN1698032A (zh) | 从非线性存储器引导 | |
CN1746842A (zh) | 用于乱序执行条件指令的硬件装置及其执行方法 | |
CN101061466A (zh) | 用于处理闪速存储器的数据的装置和方法 | |
CN101034372A (zh) | 非易失存储系统和非易失存储器的管理方法 | |
CN1763729A (zh) | 用于闪速存储器的数据处理设备和方法 | |
CN1855032A (zh) | 微处理系统、总线地址转换方法以及程序修补方法 | |
CN101030186A (zh) | 接口电路、使用该接口电路的系统装置、数据接口方法 | |
CN1645516A (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN1549133A (zh) | 快闪存储器的平行双轨使用方法 | |
CN1538456A (zh) | 闪存存取装置及方法 | |
CN1435758A (zh) | 存储装置、数据处理方法以及数据处理程序 | |
CN1841329A (zh) | 对目标文件进行定位的方法和装置 | |
CN1250184A (zh) | 具有地址变换的数据处理方法及设备 | |
CN1928832A (zh) | 多处理计算系统中的状态跟踪和恢复方法和系统 | |
CN1687910A (zh) | 连续访问环境下的中断恢复方法及装置 | |
CN1866205A (zh) | 一种配置信息平滑升级的方法及装置 | |
CN1650288A (zh) | 用于从集成电路的非易失性存储器中取数据的方法和相应的集成电路 | |
CN1889061A (zh) | 一种提高访问usb接口的信息安全设备速度的方法及装置 | |
CN1270253C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090408 Termination date: 20200815 |