The invention discloses a method and device for accessing cache, dividing the buffer area of data provided by the first process to the second process into several buffer blocks. When a target process requests access to the buffer, a target buffer block is selected from the multiple buffer blocks of the buffer area to determine whether the target buffer block is locked or not, if the target buffer block is locked. In the locked state, instead of waiting for the target buffer region to switch to a non-locked state, another buffer block can be selected from other buffer blocks as the target buffer block, and the execution of \judging whether the acquired target buffer block is locked\ will be returned until the target cache that is not currently locked is found from multiple buffer blocks. Block, which enables multiple processes to access different buffer blocks in the same buffer at the same time, improves the efficiency of data communication between processes.
【技术实现步骤摘要】
一种访问缓存的方法和装置
本专利技术涉及信息处理
,特别是涉及一种访问缓存的方法和装置。
技术介绍
目前,进程间的数据通信通常是通过共享的缓存区实现的。例如,当进程A需要向进程B提供数据时,进程A先将该数据存入两者共享的缓存区,然后进程B再从该缓冲区中取出该数据,从而完成两者间的数据通信。但由于该缓冲区是进程A与进程B共享的,两者对该缓冲区的访问可能会产生冲突。例如,在进程A向该缓存区存入数据的同时进程B从该缓存区取出数据,从而导致两个进程之间的数据通信出现错误。为了避免这种访问冲突,当某进程访问该缓冲区时,该缓冲区的状态可以被设置成锁定状态,以使得该缓冲区在处于锁定状态时不会被其他进程访问。这样虽然能避免不同进程对同一缓冲区的访问冲突,但却会导致在缓冲区正在被访问的同时针对该缓冲区发起的其他访问必须要等待该缓冲区正在进行的访问结束之后才能进行,也就是说,不同进程对同一缓冲区发起的并发访问无法同时进行,因此,进程间的数据通信效率不高。
技术实现思路
本专利技术所要解决的技术问题是,提供一种访问缓存的方法和装置,以使得在进程间数据通信过程中不同进程对同一缓冲区的并发访问能够同时进行,从而提高进程间的数据通信效率。第一方面,本专利技术实施例提供了一种访问缓存的方法,包括:响应于目标进程对缓存区的访问请求,从多个缓存区块中选取一目标缓存区块;所述缓存区用于第一进程向第二进程提供数据,所述缓存区由所述多个缓存区块组成;判断获取到的目标缓存区块是否处于锁定状态;若所述目标缓存区域未处于锁定状态,将所述目标缓存区块从非锁定状态切换成锁定状态,在所述目标缓存区块已切换 ...
【技术保护点】
1.一种访问缓存的方法,其特征在于,包括:响应于目标进程对缓存区的访问请求,从多个缓存区块中选取一目标缓存区块;所述缓存区用于第一进程向第二进程提供数据,所述缓存区由所述多个缓存区块组成;判断获取到的目标缓存区块是否处于锁定状态;若所述目标缓存区域未处于锁定状态,将所述目标缓存区块从非锁定状态切换成锁定状态,在所述目标缓存区块已切换成锁定状态的情况下在所述目标缓存区块中执行所述访问请求对应的访问操作,并在所述访问操作执行完毕之后将所述目标缓存区块从锁定状态切换成非锁定状态;若所述目标缓存区块处于锁定状态,从所述多个缓存区块中选取另一目标缓存区块,返回执行所述判断获取到的目标缓存区块是否处于锁定状态。
【技术特征摘要】
1.一种访问缓存的方法,其特征在于,包括:响应于目标进程对缓存区的访问请求,从多个缓存区块中选取一目标缓存区块;所述缓存区用于第一进程向第二进程提供数据,所述缓存区由所述多个缓存区块组成;判断获取到的目标缓存区块是否处于锁定状态;若所述目标缓存区域未处于锁定状态,将所述目标缓存区块从非锁定状态切换成锁定状态,在所述目标缓存区块已切换成锁定状态的情况下在所述目标缓存区块中执行所述访问请求对应的访问操作,并在所述访问操作执行完毕之后将所述目标缓存区块从锁定状态切换成非锁定状态;若所述目标缓存区块处于锁定状态,从所述多个缓存区块中选取另一目标缓存区块,返回执行所述判断获取到的目标缓存区块是否处于锁定状态。2.根据权利要求1所述的方法,其特征在于,所述目标进程为所述第一进程;所述访问操作具体为:在所述目标缓存区块满足可存入条件的情况下所述第一进程将目标数据存入到所述目标缓存区块;其中,所述可存入条件为:所述目标缓存区块具有未存入数据的剩余存储空间。3.根据权利要求2所述的方法,其特征在于,所述可存入条件包括:所述目标缓存区块的部分存储空间存入数据且最近一次在所述目标缓存区块中存入数据的时间未超过时间阈值。4.根据权利要求1所述的方法,其特征在于,所述目标进程为所述第二进程;所述访问操作具体为:在所述目标缓存区块满足可取出条件的情况下所述第二进程从所述目标缓存区块中取出目标数据并将所述目标数据从所述目标缓存区块中删除;其中,所述可取出条件为:所述目标缓存区块的存储空间已存入数据。5.根据权利要求4所述的方法,其特征在于,所述可取出条件包括:所述目...
【专利技术属性】
技术研发人员:于明光,吴擒龙,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:辽宁,21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。