CN101631328B - 一种对共享资源互斥访问的同步方法、装置和网络设备 - Google Patents

一种对共享资源互斥访问的同步方法、装置和网络设备 Download PDF

Info

Publication number
CN101631328B
CN101631328B CN2009100912092A CN200910091209A CN101631328B CN 101631328 B CN101631328 B CN 101631328B CN 2009100912092 A CN2009100912092 A CN 2009100912092A CN 200910091209 A CN200910091209 A CN 200910091209A CN 101631328 B CN101631328 B CN 101631328B
Authority
CN
China
Prior art keywords
shared resource
copy
pointer variable
read
clean
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.)
Expired - Fee Related
Application number
CN2009100912092A
Other languages
English (en)
Other versions
CN101631328A (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.)
Beijing Star Net Ruijie Networks Co Ltd
Original Assignee
Beijing Star Net Ruijie Networks Co Ltd
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 Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN2009100912092A priority Critical patent/CN101631328B/zh
Publication of CN101631328A publication Critical patent/CN101631328A/zh
Application granted granted Critical
Publication of CN101631328B publication Critical patent/CN101631328B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种对共享资源互斥访问的同步方法、装置和网络设备。本发明通过引入共享资源指针变量来访问共享资源,在对共享资源进行写操作时新建一个共享资源的副本专门用于资源更新,并使用两个锁来分别保护共享资源指针变量和共享资源的副本,将对复杂共享资源的引用简化为对指针变量的引用,降低的临界区操作的复杂度,提升了系统性能,同时使得多个读者和一个写者能够同时访问共享资源,达到自己独占共享数据的效果,很大程度上提升了系统并发效率。

Description

一种对共享资源互斥访问的同步方法、装置和网络设备
技术领域
本发明涉及一种对共享资源互斥访问的同步方法、装置和网络设备,属于数据通信技术领域。 
背景技术
下面先对本发明中涉及的几个概念进行解释。 
共享资源:指系统中有多个线程会访问的数据;要防止共享资源的并发访问,因为如果多个执行线程同时访问和操作数据,就有可能发生各线程之间相互覆盖共享数据的情况,造成被访问数据处于不一致状态。 
竞争条件:当计算结果完全依赖于两个或者多个线程如何交替执行的时候,构成一个竞争条件,例如:多个线程并发访问共享资源的时候,其运算结果就依赖于线程交替执行的顺序,所以会构成竞争条件。 
临界区:即访问和操作共享资源的代码段。多个执行线程并发访问同一个资源通常是不安全的,为了避免在临界区中并发访问,编程者必须保证这些代码原子地执行,即代码在执行结束前不可被打断,就如同整个临界区是一个不可分割的指令一样; 
同步技术:为了防止竞争条件和保证临界区能够原子的执行,需要引入一些技术,这些技术被称为同步技术。 
现有的同步技术主要有以下几种: 
1)原子操作:最基本的同步技术,需要CPU的支持,对内存实现读-修改-写的原子操作; 
2)自旋锁:当某个线程需要共享资源时候,需要首先获取锁,完成访问时候释放锁,当锁已经被其他的访问者取得时候,则等待直到锁被释 放,最多只能有一个读者或者一个写者能够获取锁,以此保证临界区的原子操作; 
3)读写自旋锁:自旋锁的改进版本,允许某一时刻,有多个读者获取读锁,或者一个写者获取写锁; 
4)信号量:类似于自旋锁,不同之处在于,当访问者想要访问共享资源,资源却被其他的访问者占用的时候,该线程挂起,直到资源可用然后被系统唤起;同自旋锁一样,最多只能有一个读者或者一个写者能够访问共享资源; 
5)读写信号量:信号量的改进版本,允许某一时刻,有多个读者同时读取,或者一个写者写入。 
考虑到并发效率和系统开销等因素,各种同步技术分别有其局限性而适用于不同的场合,原子操作有很好的并发效率和较低的系统开销,但只能操作CPU支持的原子变量,通常为单个整型变量,如果共享资源无法用单个整型变量表示,则无法适用;自旋锁和读写自旋锁不适用于对资源的长时间频繁访问,如果临界区代码较长,访问频繁,则在锁的获取过程中等待的时间较长,浪费系统资源;信号量和读写信号量应用到临界区简短的情形下就会得不偿失,因为任务的挂起唤醒等操作导致系统开销很大,同时使用信号量的时候,代码必须允许被挂起。 
如果对共享资源的访问操作比较复杂,即临界区较长,访问频繁,读操作远多于写操作,那么综合考虑的结果就是使用读写信号量,此时我们不得不接受任务挂起唤醒等大量的系统开销,同时如果在某些嵌入式系统中,一些内核路径(如中断处理)访问共享资源的时候不允许挂起,则只能选择自旋锁,这又会导致大量的等待,浪费系统资源。 
专利《一种多CPU互斥的方法》(申请号200610021196.8)提出了一种读操作不用通过互斥机制,像独占资源一样直接访问的方法,该专利的主要方案是:a,确定共享信息的基本数据单位,并用指针指向它。b,执行写操作之前先在缓冲区填写好完整信息。c,通过改写指针的一条指令提交修改后的共享数据。d,读操作直接访问共享数据。
但此专利对使用情境做了如下限制: 
1,指针赋值操作必须为原子指令,而这并不是所有CPU能够支持的。 
2,规定了一个写操作提交到原数据资源释放的时间间隔T,读者或其他写者对共享资源的访问时间必须在时间间隔T内完成。 
上述专利没有对写者之间的数据一致性做出保证,使用的限制条件极大的约束了该方法的应用范围,尤其是第2条,几乎限制了只有某些特殊情况的才能使用此技术,因为读操作或者写操作对共享资源的最大访问时间只有在很少的特殊情况下才能确定,而如果时间间隔T设置的时间过长,则会造成对系统资源的浪费。 
发明内容
本发明的目的是提供一种对共享资源互斥访问的同步方法、装置和网络设备,降低系统开销,并提高系统的满足并发效率,使得多个读者和一个写者能够同时进行对共享资源的访问。 
为实现上述目的,本发明提供了一种对共享资源互斥访问的同步方法,所述方法包括: 
锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一;所述锁一为读写自旋锁; 
对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本; 
对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二;所述锁二为自旋锁。 
为了实现上述目的,本发明还提供了一种对共享资源互斥访问的同步装 置,所述装置包括初始化模块、读操作模块、写操作模块和存储模块; 
所述初始化模块用于:锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一;所述锁一为读写自旋锁; 
所述读操作模块用于对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本; 
所述写操作模块用于对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二;所述锁二为自旋锁; 
所述存储模块与初始化模块、读操作模块和写操作模块连接,用于存储指针变量、共享资源的原始副本和共享资源的新副本。 
为了实现上述目的,本发明又提供了一种网络设备,所述网络设备包括上述装置。 
本发明通过引入共享资源指针变量来访问共享资源,在对共享资源进行写操作时新建一个共享资源的副本专门用于资源更新,并使用两个锁来分别保护共享资源指针变量和共享资源的副本,将对复杂共享资源的引用简化为对指针变量的引用,降低的临界区操作的复杂度,提升了系统性能,同时使得多个读者和一个写者能够同时访问共享资源,达到自己独占共享数据的效果,很大程度上提升了系统并发效率。 
附图说明
图1为本发明一种对共享资源互斥访问的同步方法实施例一示意图 
图2为本发明一种对共享资源互斥访问的同步方法实施例二示意图 
图3为本发明一种对共享资源互斥访问的同步方法实施例三示意图 
图4为本发明一种对共享资源互斥访问的同步装置实施例一示意图 
图5为本发明一种对共享资源互斥访问的同步装置实施例二示意图 
图6(a)-(i)为本发明一种对共享资源互斥访问的同步方法实施例四示意图 
图7为本发明一种网络设备实施例示意图 
具体实施方式
本发明的目的是提供一种对共享资源互斥访问的同步方法、装置和网络设备,降低系统开销,并提高系统的满足并发效率,使得多个读者和一个写者能够同时进行对共享资源的访问。 
下面结合附图对本发明进行说明,本发明提供了一种对共享资源互斥访问的同步方法,图1给出了本发明一种对共享资源互斥访问的同步方法实施例一示意图,所述方法包括: 
步骤S1,锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一; 
共享资源指针变量指向共享资源的副本,用于通过所述指针变量来访问共享资源。 
步骤S2,对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本; 
步骤S3,对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二。 
步骤S2可以在步骤S3之前执行,也可以在步骤S3之后执行,或者与步骤S3同步执行。 
所述锁一可以为读写自旋锁,即定义一个读写自旋锁用于保护对指针变量的并发读写操作; 
所述锁二可以为自旋锁,用于保护对共享资源的副本进行并发写入操作。 
在对共享资源进行读操作的时候,在读写自旋锁的保护下,原子的取得共享资源指针变量,读取共享资源的原始副本; 
在对共享资源进行写操作的时候,在自旋锁的保护下保证写者之间是互斥的;先与读操作一样获取共享资源指针变量,读取共享资源的原始副本,再动态创建一个共享资源的新副本,并将对共享资源的更新写到新副本中,在读取原始副本和改写新副本的过程中其他读者可以同时引用旧副本,到达一个写者和多个读者同时操作共享资源的效果,最后在读写自旋锁的保护下,将新副本的指针值赋给共享资源指针变量,此时便完成了共享资源的更新,新的读者或者写者再次引用共享资源的时候,看到的就是新的副本了。 
锁一也可以为读写信号量;锁二也可以为信号量。 
本发明通过引入共享资源指针变量来访问共享资源,在对共享资源进行写操作时新建一个共享资源的副本专门用于资源更新,并使用两个锁来分别保护共享资源指针变量和共享资源的副本,将对复杂共享资源的引用简化为对指针变量的引用,降低的临界区操作的复杂度,提升了系统性能,同时使得多个读者和一个写者能够同时访问共享资源,达到自己独占共享数据的效果,很大程度上提升了系统并发效率。 
图2给出本发明一种对共享资源互斥访问的同步方法实施例二示意图,本实施例除了包括方法实施例一的步骤外,还包括步骤S4:判断所述副本是否未被引用,如果是则释放所述副本。 
步骤S4可以在步骤S1之后的任意位置执行。 
判断所述副本是否未被引用可以通过对副本进行计数的方式来实现。 
通过将未被引用的副本释放掉,可以避免资源泄露,从而避免系统因资源泄露过多而出现问题。 
图3给出本发明一种对共享资源互斥访问的同步方法实施例三示意图,本实施例除了包括方法实施例二的步骤外, 
步骤S1中所述将共享资源指针变量指向共享资源的原始副本后,还要对 原始副本进行增加引用的计数; 
增加引用的计数可以为:以增加计数值或减少计数值的方式来表示引用的增加。 
步骤S2中所述读取共享资源指针变量后,还要对原始副本进行增加引用的计数; 
步骤S3中所述读取共享资源指针变量后,还要对原始副本进行增加引用的计数; 
步骤S3中所述根据所述原始副本复制并更新共享资源的新副本后,还要对原始副本进行减少引用的计数; 
减少引用的计数可以为:以减少计数值或增加计数值的方式来表示引用的减少。 
步骤S3中所述将指针变量指向更新后的新副本时,还要对原始副本进行减少引用的计数,对新副本进行增加引用的计数; 
步骤S2中所述读取共享资源指针变量指向的原始副本后,还包括:读操作完成后,对原始副本进行减少引用的计数; 
步骤S4具体为:根据副本的计数值判断所述副本是否未被引用,如果是则释放所述副本。 
例如系统对共享资源的每个副本分别进行计数,计数值表示副本是否被引用,可以为原子操作类型,计数值大于0表示副本正在被引用,例如某些访问者正在访问该副本,即副本有效,等于0表示副本无效可以释放。 
通过对副本进行计数,表示目前副本被引用的数量,从而可以方便的判断出何时共享资源的副本未被引用,此时副本即可以被释放。 
此外,由于本发明采用了锁机制,保证对共享资源指针变量的操作不需要原子指令支持,采用了计数机制保证了读操作和写操作的访问时间不受任何约束,这保证了本技术的广泛适用性。 
本发明提供了一种对共享资源互斥访问的同步装置,图4给出了本发明 一种对共享资源互斥访问的同步装置实施例一示意图,所述装置包括初始化模块M1、读操作模块M2、写操作模块M3和存储模块M4; 
所述初始化模块M1用于:锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一; 
所述读操作模块M2用于对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本; 
所述写操作模块M3用于对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二; 
所述存储模块M4与初始化模块M1、读操作模块M2和写操作模块M3连接,用于存储指针变量、共享资源的原始副本和共享资源的新副本。 
图5给出了本发明一种对共享资源互斥访问的同步装置实施例二示意图,本实施例除了包括装置实施例一的结构特征外,还包括判断释放模块M5,与存储模块M4连接,用于判断所述副本是否未被引用,如果是则释放所述副本。 
所述初始化模块M1还可以用于将共享资源指针变量指向共享资源的原始副本后,对原始副本进行增加引用的计数; 
所述读操作模块M2还可以用于在读取共享资源指针变量后,对原始副本进行增加引用的计数; 
所述写操作模块M3还可以用于在读取共享资源指针变量后,对原始副本进行增加引用的计数; 
所述写操作模块M3还可以用于在根据所述原始副本复制并更新共享资源的新副本后,对原始副本进行减少引用的计数; 
所述写操作模块M3还可以用于在将共享资源指针变量指向更新后的新副本后,对原始副本进行减少引用的计数,对新副本进行增加引用的计数; 
所述读操作模块M2还可以用于在读操作完成后,对原始副本进行减少引用的计数; 
所述判断释放模块M5具体可以用于根据副本的计数值判断所述副本是否未被引用,如果是则释放所述副本。 
本发明在应用于以下情境时可以达到较优效果: 
1,对共享资源的操作比较复杂,即对临界区操作时间较长; 
2,对共享资源访问频繁,且读操作多于写操作; 
3,共享资源通过一个指针进行间接引用,共享资源可存放于动态申请的内存中。 
下面以3个读者R1、R2、R3和一个写者W1的交替操作,来阐述本发明一种对共享资源互斥访问的同步方法的具体过程: 
初始化锁一,用于保护共享资源指针变量的并发读写;初始化锁二,用于保护对共享资源副本进行并发写入操作;初始化共享资源的副本1的计数值为0。 
锁住锁一,将共享资源指针变量指向共享资源的副本1,将副本1的计数值加1,即变为1,表示副本1有效,解开锁一;如图6(a)所示。 
R1开始对共享资源进行读操作,具体操作为:锁住锁一,读取共享资源指针变量,并将副本1的计数值加1,即变为2,解开锁一;读取共享资源指针变量指向的副本1;如图6(b)所示。 
在锁一的保护下,R1原子的获得共享资源的副本1的指针,完成对共享资源的访问,副本1的计数值变为2; 
W1在对共享资源进行写操作时,首先要锁住锁二,读取共享资源的副本1,操作同R1的读操作,此时副本1的计数值变为3,随后根据副本1复制一个新的副本2,用于更新共享资源的数据,并将副本2的计数值初始化为0。这里可以看到R1的读操作和W1的写操作同时进行,读操作达到了独享资源的效果;如图6(c)所示。 
此时W1还没有对共享资源指针变量进行修改,即写操作还没有提交,R2开始对共享资源进行读操作,因此仍旧引用共享资源的副本1,此时副本1计数值变为4;如图6(d)所示。 
W1完成对副本2的更新后,释放了对副本1的引用,并将副本1的计数值减1,变为3,锁住锁一,将共享资源指针变量自动指向更新后的副本2,并将副本1的计数值减1,变为2,将副本2的计数值加1,变为1,解开锁一,解开锁二。此时副本1的计数值为2,即R1、R2仍然在引用共享资源的副本1,因此还不能释放副本1;如图6(e)所示。 
R2完成了对共享资源的读操作,系统释放R2对副本1的引用,并将副本1的计数值减1,变为1;如图6(f)所示。 
新的读者R3再次对共享资源进行读操作时候,读取的是更新后的资源副本2,此时副本2的计数值加1,变为2;如图6(g)所示。 
R3首先完成对共享资源的读操作,并释放对副本2的引用,副本2的计数值减1,变为1,R1仍然还在引用资源副本1;如图6(h)所示。 
最终R1也完成了对共享资源的读操作,将副本1的计数值减1,变为0,由于R1是资源副本1的最后一个引用者了,因此R1可以负责将副本1占用的系统资源释放掉;如图6(i)所示。 
这里R1是第一个获取资源,也是最后一个释放共享资源的访问者,如果单独采用信号量或者读写自旋锁来保护共享资源,则在R1释放共享资源前W1和R3是无法并发访问共享资源的,当采用本发明的技术后,R1、R2、R3,W1能够很好的并发访问共享资源,所增加的开销仅仅是用于共享资源指针变量的临界区操作,如果其代价远小于对共享资源的临界区操作,则开销可以忽略,达到了多个读者和一个写者同时访问共享资源的效果,提升了系统的效率。 
本发明又提供了一种网络设备,图7给出了本发明一种网络设备实施例示意图,所述网络设备包括上述装置实施例一或装置实施例二。 
所述网络设备可以为路由器、交换机、个人计算机(Personal Computer,简称PC)等任何使用嵌入式系统的设备。 
本发明通过引入共享资源指针变量来访问共享资源,在对共享资源进行写操作时新建一个共享资源的副本专门用于资源更新,并使用两个锁来分别保护共享资源指针变量和共享资源的副本,将对复杂共享资源的引用简化为对指针变量的引用,降低的临界区操作的复杂度,提升了系统性能,同时使得多个读者和一个写者能够同时访问共享资源,达到自己独占共享数据的效果,很大程度上提升了系统并发效率。 
本发明通过计数的方式对副本进行计数,表示目前副本被引用的数量,从而可以方便的判断出何时共享资源的副本未被引用,此时副本即可以被释放。通过将未被引用的副本释放掉,可以避免资源泄露,从而避免系统因资源泄露过多而出现问题。 
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。 

Claims (7)

1.一种对共享资源互斥访问的同步方法,其特征在于,所述方法包括:
锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一;所述锁一为读写自旋锁;
对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;
对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二;所述锁二为自旋锁。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述副本是否未被引用,如果是则释放所述副本。
3.根据权利要求2所述的方法,其特征在于,
所述将共享资源指针变量指向共享资源的原始副本后,还要对原始副本进行增加引用的计数;
所述读取共享资源指针变量后,还要对原始副本进行增加引用的计数;
所述根据所述原始副本复制并更新共享资源的新副本后,还要对原始副本进行减少引用的计数;
所述将共享资源指针变量指向更新后的新副本后,还要对原始副本进行减少引用的计数,对新副本进行增加引用的计数;
所述方法还包括:读操作完成后,对原始副本进行减少引用的计数;
所述判断所述副本是否未被引用具体为:根据副本的计数值判断所述副本是否未被引用。
4.一种对共享资源互斥访问的同步装置,其特征在于,所述装置包括初始化模块、读操作模块、写操作模块和存储模块;
所述初始化模块用于:锁住锁一,将共享资源指针变量指向共享资源的原始副本,解开锁一;所述锁一为读写自旋锁;
所述读操作模块用于对共享资源进行读操作时,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;
所述写操作模块用于对共享资源进行写操作时,锁住锁二,锁住锁一,读取共享资源指针变量,解开锁一;读取共享资源指针变量指向的原始副本;根据所述原始副本复制并更新共享资源的新副本,锁住锁一,将共享资源指针变量指向更新后的新副本,解开锁一,解开锁二;所述锁二为自旋锁;
所述存储模块与初始化模块、读操作模块和写操作模块连接,用于存储指针变量、共享资源的原始副本和共享资源的新副本。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括判断释放模块,与存储模块连接,用于判断所述副本是否未被引用,如果是则释放所述副本。
6.根据权利要求5所述的装置,其特征在于,
所述初始化模块还用于将共享资源指针变量指向共享资源的原始副本后,对原始副本进行增加引用的计数;
所述读操作模块还用于在读取共享资源指针变量后,对原始副本进行增加引用的计数;
所述写操作模块还用于在读取共享资源指针变量后,对原始副本进行增加引用的计数;
所述写操作模块还用于在根据所述原始副本复制并更新共享资源的新副本后,对原始副本进行减少引用的计数;
所述写操作模块还用于在将共享资源指针变量指向更新后的新副本后,对原始副本进行减少引用的计数,对新副本进行增加引用的计数;
所述读操作模块还用于在读操作完成后,对原始副本进行减少引用的计数;
所述判断释放模块具体用于根据副本的计数值判断所述副本是否未被引用,如果是则释放所述副本。
7.一种包括权利要求4-6任一所述装置的网络设备。
CN2009100912092A 2009-08-14 2009-08-14 一种对共享资源互斥访问的同步方法、装置和网络设备 Expired - Fee Related CN101631328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100912092A CN101631328B (zh) 2009-08-14 2009-08-14 一种对共享资源互斥访问的同步方法、装置和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100912092A CN101631328B (zh) 2009-08-14 2009-08-14 一种对共享资源互斥访问的同步方法、装置和网络设备

Publications (2)

Publication Number Publication Date
CN101631328A CN101631328A (zh) 2010-01-20
CN101631328B true CN101631328B (zh) 2011-11-16

Family

ID=41576219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100912092A Expired - Fee Related CN101631328B (zh) 2009-08-14 2009-08-14 一种对共享资源互斥访问的同步方法、装置和网络设备

Country Status (1)

Country Link
CN (1) CN101631328B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467569A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 在重复数据删除中支持文件并发读写的方法
CN102141932B (zh) * 2010-12-14 2012-11-14 清华大学 大临界区保护方法
CN102629221B (zh) * 2012-02-28 2014-11-19 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统
CN102662747A (zh) * 2012-04-23 2012-09-12 深圳市融创天下科技股份有限公司 一种线程访问临界区的方法、系统和终端设备
CN103677971B (zh) * 2012-09-21 2017-11-24 上海斐讯数据通信技术有限公司 多线程处理系统及方法
CN103049334B (zh) 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机
CN104077078B (zh) * 2013-03-26 2017-07-07 华为技术有限公司 读存储区、更新存储区的方法及装置
CN103336828B (zh) * 2013-07-05 2017-10-03 深圳市康拓普信息技术有限公司 实时数据库读取及写入方法
CN103473135B (zh) * 2013-09-23 2016-08-24 中国科学技术大学苏州研究院 虚拟化环境下自旋锁lhp现象的处理方法
CN103729253B (zh) * 2013-12-31 2017-08-04 深圳市科漫达智能管理科技有限公司 一种独占资源使用方法及装置
US20160349995A1 (en) * 2014-01-29 2016-12-01 Vinay VENUGOPAL Synchronizing per-cpu data access using per socket rw-spinlocks
CN104216767B (zh) * 2014-09-18 2017-10-31 东软集团股份有限公司 多线程之间访问共享数据的方法及装置
CN105095354A (zh) * 2015-06-19 2015-11-25 北京奇虎科技有限公司 数据更新的方法及装置
CN105760216A (zh) * 2016-02-29 2016-07-13 惠州市德赛西威汽车电子股份有限公司 一种多进程同步控制方法
CN107230153A (zh) * 2016-03-24 2017-10-03 平安科技(深圳)有限公司 处理保单信息的方法和装置
CN107273214A (zh) * 2017-06-30 2017-10-20 郑州云海信息技术有限公司 一种基于固态硬盘的多核控制器资源访问方法及其装置
CN107741883B (zh) * 2017-09-29 2018-10-23 武汉斗鱼网络科技有限公司 一种避免线程阻塞的方法、装置及计算机设备
JP7067286B2 (ja) * 2018-06-06 2022-05-16 オムロン株式会社 制御システム、制御システムの制御方法、および制御システムのプログラム
CN109271260A (zh) * 2018-08-28 2019-01-25 百度在线网络技术(北京)有限公司 临界区加锁方法、装置、终端及存储介质
CN110569191A (zh) * 2019-08-30 2019-12-13 暨南大学 Wsn程序中线程访问共享资源出错的检测方法及工具
CN113791916B (zh) * 2021-11-17 2022-02-08 支付宝(杭州)信息技术有限公司 对象更新、读取方法及装置
CN117041392A (zh) * 2023-10-07 2023-11-10 中科方德软件有限公司 数据包的处理方法、装置、电子设备和介质
CN117271141B (zh) * 2023-11-21 2024-02-23 新华三技术有限公司 资源更新系统、装置及网络设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013381A (zh) * 2007-01-26 2007-08-08 华中科技大学 基于对象存储系统的分布式锁
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013381A (zh) * 2007-01-26 2007-08-08 华中科技大学 基于对象存储系统的分布式锁
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法

Also Published As

Publication number Publication date
CN101631328A (zh) 2010-01-20

Similar Documents

Publication Publication Date Title
CN101631328B (zh) 一种对共享资源互斥访问的同步方法、装置和网络设备
CN100587670C (zh) 用于受控运行时环境的利用锁膨胀进行线程同步的方法和装置
US7747805B2 (en) Adaptive reader-writer lock
JP4783471B2 (ja) クラスが有するメソッドを呼出して実行するコンピュータ・システムが行う方法
US8819684B2 (en) Synchronizing multiple threads efficiently
CN101950259B (zh) 用于执行事务的装置、系统及方法
US9619301B2 (en) Multi-core memory model and speculative mode processor management
US8375175B2 (en) Fast and efficient reacquisition of locks for transactional memory systems
RU2501071C2 (ru) Механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle)
US6678772B2 (en) Adaptive reader-writer lock
CN101203831B (zh) 用于对存储器更新进行缓存的装置、方法和系统
US7398376B2 (en) Instructions for ordering execution in pipelined processes
US5892944A (en) Program execution and operation right management system suitable for single virtual memory scheme
US20090006403A1 (en) Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes
US20120089760A1 (en) Increasing Functionality Of A Reader-Writer Lock
US20080040524A1 (en) System management mode using transactional memory
CN104583943A (zh) 拥有具有分布式结构的动态分派窗口的虚拟加载存储队列
CN104823154A (zh) 具有拥有统一结构的动态分派窗口的虚拟加载存储队列
KR20130064792A (ko) 원자 영역에서 조건부 커미트를 위한 결정 메카니즘 제공 장치, 방법, 및 시스템
CN104583936A (zh) 具有组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量方法和系统
CN104583956A (zh) 用于实现加载存储重新排序和优化的指令定义
CN111459691A (zh) 共享内存的读写方法及装置
Dokulil et al. Implementing the open community runtime for shared-memory and distributed-memory systems
US10360079B2 (en) Architecture and services supporting reconfigurable synchronization in a multiprocessing system
US20020112100A1 (en) System and method for data exchange

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Zhou Jian

Document name: Review of business letter

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111116

Termination date: 20140814

EXPY Termination of patent right or utility model