共享内存访问方法及系统技术方案

技术编号:19634825 阅读:36 留言:0更新日期:2018-12-01 15:35
本发明专利技术提供了一种共享内存访问方法,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。上述的访问方法,将访问请求存储到预设的请求队列中,在所述预设的请求队列中获取目标访问请求,避免了在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟的问题。

Shared Memory Access Method and System

The invention provides a shared memory access method for memory operation processor, which includes: when the memory operation processor receives an access request for shared memory, the access request is stored in a preset request queue, which contains at least one access request; and the preset request queue is acquired. Target access request in the set request queue; parse the access operation contained in the target access request, access the shared memory according to the access operation; and pass the access result to the corresponding target result queue when the access is completed. The above-mentioned access method stores the access request in the preset request queue, and obtains the target access request in the preset request queue. It avoids the problem that a large number of access requests are in a waiting state under high concurrency, which leads to invalid context switching and wastes CPU clock.

【技术实现步骤摘要】
共享内存访问方法及系统
本专利技术涉及移动业务支撑
,尤其涉及一种共享内存访问方法及系统。
技术介绍
在高并发情况下,多个访问请求需要访问同一共享内存时,为了保证线程安全,多个访问请求采用加锁机制访问同一共享内存,当一个访问请求访问该共享内存的某个数据时,将访问过程通过加锁的方式进行保护,其它线程访问请求不能进行访问,直到该访问请求操作完成时,其它的访问请求才可访问共享内存。专利技术人对现有的共享内存访问方法进行研究发现,由于多个访问请求之间需要对锁竞争,在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟。
技术实现思路
有鉴于此,本专利技术提供了一种共享内存访问方法,用以解决现有技术中由于多个访问请求之间需要对锁竞争,在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟的问题。具体方案如下:一种共享内存访问方法,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。上述的方法,可选的,获取所述预设的请求队列中的目标访问请求包括:解析所述预设的请求队列中每一个访问请求的访问优先级;将所述预设的请求队列中优先级最高的访问请求作为所述目标访问请求。上述的方法,可选的,当访问完成时,将访问结果传递到对应的目标结果队列中,包括:解析所述访问结果中包含的线程标识;依据所述线程标识将所述访问结果传递到与所述线程标识相同目标结果队列中。上述的方法,可选的,还包括:查找与所述访问结果对应的目标线程;令所述目标线程读取所述目标结果队列中的访问结果;依据所述访问结果继续执行所述目标线程的后续线程。上述的方法,可选的,还包括:依据CPU绑定技术,对所述内存操作处理器进行亲缘性绑定。一种共享内存访问系统,应用于内存操作处理器,包括:存储模块,用于当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取模块,用于获取所述预设的请求队列中的目标访问请求;访问模块,用于解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;传递模块,用于当访问完成时,将访问结果传递到对应的目标结果队列中。上述的系统,可选的,所述获取模块包括:第一解析单元,用于解析所述预设的请求队列中每一个访问请求的访问优先级;确定单元,用于将所述预设的请求队列中优先级最高的访问请求作为所述目标访问请求。上述的系统,可选的,所述传递模块包括:第二解析单元,用于解析所述访问结果中包含的线程标识;传递单元,用于依据所述线程标识将所述访问结果传递到与所述线程标识相同目标结果队列中。上述的系统,可选的,还包括:查找模块,用于查找与所述访问结果对应的目标线程;读取模块,用于令所述目标线程读取所述目标结果队列中的访问结果;执行模块,用于依据所述访问结果继续执行所述目标线程的后续线程。上述的系统,可选的,还包括:绑定模块,用于依据CPU绑定技术,对所述内存操作处理器进行亲缘性绑定。与现有技术相比,本专利技术包括以下优点:本专利技术提供了一种共享内存访问方法,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。上述的访问方法,将访问请求存储到预设的请求队列中,在所述预设的请求队列中获取目标访问请求,避免了在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种共享内存访问方法流程图;图2为本申请实施例公开的一种共享内存访问方法又一方法流程图;图3为本申请实施例公开的一种共享内存访问方法又一方法流程图;图4为本申请实施例公开的一种共享内存访问方法又一方法流程图;图5为本申请实施例公开的一种共享内存访问系统结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本专利技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本专利技术的精神或范围的情况下,在其它实施例中实现。因此,本专利技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。本专利技术提供了一种共享内存的访问方法,所述访问方法应用于移动业务支撑
中多线程对共享内存的访问过程中,所述共享内存可以为Java中的共享内存,所述访问方法的执行主体可以为内存操作处理器或者其它可以执行本专利技术所述共享内存访问方法的控制器或者处理器等。本专利技术实施例中,以执行主体为内存操作处理器为例进行说明,所述访问方法的执行流程如图1所示,包括步骤:S101、当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;本专利技术实施例中,当内存操作处理器接收到一个或者多个线程对共享内存的访问请求时,其中,访问请求和线程之间存在对应关系,将所述访问请求存储到预设的请求队列中。S102、获取所述预设的请求队列中的目标访问请求;本专利技术实施例中,依据优先级的顺序确定所述预设的请求队列中的目标访问请求。S103、解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;本专利技术实施例中,所述目标访问请求中包含对所述共享内存的访问操作,所述访问操作可以为访问或者处理所述共享内存中的数据等。S104、当访问完成时,将访问结果传递到对应的目标结果队列中。本专利技术实施例中,当访问完成时,会向所述内存操作处理器发送访问完成指令,当所述内存操作处理器接收到所述访问完成指令时,将访问结果传递到对应的目标结果队列中。本专利技术实施例中,还包括:依据CPU绑定技术,对所述内存操作处理器进行亲缘性绑定,进行了亲缘性绑定之后,所述内存操作处理器对应的内存操作线程会在制定了CPU上运行,减少了Java的内存屏障,提高了CPU缓存的命中率。本专利技术提供了一种共享内存访问方法,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中本文档来自技高网
...

【技术保护点】
1.一种共享内存访问方法,其特征在于,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。

【技术特征摘要】
1.一种共享内存访问方法,其特征在于,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。2.根据权利要求1所述的方法,其特征在于,获取所述预设的请求队列中的目标访问请求包括:解析所述预设的请求队列中每一个访问请求的访问优先级;将所述预设的请求队列中优先级最高的访问请求作为所述目标访问请求。3.根据权利要求1所述的方法,其特征在于,当访问完成时,将访问结果传递到对应的目标结果队列中,包括:解析所述访问结果中包含的线程标识;依据所述线程标识将所述访问结果传递到与所述线程标识相同目标结果队列中。4.根据权利要求1所述的方法,其特征在于,还包括:查找与所述访问结果对应的目标线程;令所述目标线程读取所述目标结果队列中的访问结果;依据所述访问结果继续执行所述目标线程的后续线程。5.根据权利要求1、2、3或4所述的方法,其特征在于,还包括:依据CPU绑定技术,对所述内存操作处理器进行亲缘性绑定。6.一种共享内存访问系统,其特征在于,应用于内存操作处理...

【专利技术属性】
技术研发人员:李春林
申请(专利权)人:亚信科技中国有限公司
类型:发明
国别省市:北京,11

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

1