一种访问缓存的方法和装置制造方法及图纸

技术编号:20915575 阅读:17 留言:0更新日期:2019-04-20 09:30
本发明专利技术公开了一种访问缓存的方法和装置,将第一进程向第二进程提供数据的缓存区划分为多个缓存区块,当有目标进程对该缓存区发起访问请求时,从该缓存区的多个缓存区块中选取一目标缓存区块,判断该目标缓存区块是否处于锁定状态,如果该目标缓存区块处于锁定状态,则,无需一直等待该目标缓存区域切换为非锁定状态,而可以从其他的多个缓存区块中选取另一缓存区块作为目标缓存区块,返回执行“判断获取到的目标缓存区块是否处于锁定状态”,直到从多个缓存区块中查找到当前不处于锁定状态的目标缓存区块,实现了多个进程同时向同一缓存区的不同缓存区块分别进行访问,从而提高进程间的数据通信效率。

A Method and Device for Accessing Cache

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为本专利技术实施例提供的一种访问缓存的方法的流程示意图;图2为本专利技术实施例提供的一实例中的缓存区的结构示意图;图3为本专利技术实施例提供的一种访问缓存的方法的一实例的流程示意图;图4为本专利技术实施例提供的一种访问缓存的方法的另一实例的流程示意图;图5为本专利技术实施例提供的一种访问缓存的装置的结构示意图;图6为本专利技术实施例提供的一种访问缓存的设备的结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附本文档来自技高网
...

【技术保护点】
1.一种访问缓存的方法,其特征在于,包括:响应于目标进程对缓存区的访问请求,从多个缓存区块中选取一目标缓存区块;所述缓存区用于第一进程向第二进程提供数据,所述缓存区由所述多个缓存区块组成;判断获取到的目标缓存区块是否处于锁定状态;若所述目标缓存区域未处于锁定状态,将所述目标缓存区块从非锁定状态切换成锁定状态,在所述目标缓存区块已切换成锁定状态的情况下在所述目标缓存区块中执行所述访问请求对应的访问操作,并在所述访问操作执行完毕之后将所述目标缓存区块从锁定状态切换成非锁定状态;若所述目标缓存区块处于锁定状态,从所述多个缓存区块中选取另一目标缓存区块,返回执行所述判断获取到的目标缓存区块是否处于锁定状态。

【技术特征摘要】
1.一种访问缓存的方法,其特征在于,包括:响应于目标进程对缓存区的访问请求,从多个缓存区块中选取一目标缓存区块;所述缓存区用于第一进程向第二进程提供数据,所述缓存区由所述多个缓存区块组成;判断获取到的目标缓存区块是否处于锁定状态;若所述目标缓存区域未处于锁定状态,将所述目标缓存区块从非锁定状态切换成锁定状态,在所述目标缓存区块已切换成锁定状态的情况下在所述目标缓存区块中执行所述访问请求对应的访问操作,并在所述访问操作执行完毕之后将所述目标缓存区块从锁定状态切换成非锁定状态;若所述目标缓存区块处于锁定状态,从所述多个缓存区块中选取另一目标缓存区块,返回执行所述判断获取到的目标缓存区块是否处于锁定状态。2.根据权利要求1所述的方法,其特征在于,所述目标进程为所述第一进程;所述访问操作具体为:在所述目标缓存区块满足可存入条件的情况下所述第一进程将目标数据存入到所述目标缓存区块;其中,所述可存入条件为:所述目标缓存区块具有未存入数据的剩余存储空间。3.根据权利要求2所述的方法,其特征在于,所述可存入条件包括:所述目标缓存区块的部分存储空间存入数据且最近一次在所述目标缓存区块中存入数据的时间未超过时间阈值。4.根据权利要求1所述的方法,其特征在于,所述目标进程为所述第二进程;所述访问操作具体为:在所述目标缓存区块满足可取出条件的情况下所述第二进程从所述目标缓存区块中取出目标数据并将所述目标数据从所述目标缓存区块中删除;其中,所述可取出条件为:所述目标缓存区块的存储空间已存入数据。5.根据权利要求4所述的方法,其特征在于,所述可取出条件包括:所述目...

【专利技术属性】
技术研发人员:于明光吴擒龙
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1