[发明专利]共享内存访问方法及系统在审
申请号: | 201810575783.4 | 申请日: | 2018-06-06 |
公开(公告)号: | CN108920284A | 公开(公告)日: | 2018-11-30 |
发明(设计)人: | 李春林 | 申请(专利权)人: | 亚信科技(中国)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 访问请求 请求队列 预设 共享内存 访问操作 内存操作 访问 处理器 存储 上下文切换 等待状态 访问结果 获取目标 目标结果 完成时 队列 并发 解析 传递 应用 | ||
本发明提供了一种共享内存访问方法,应用于内存操作处理器,包括:当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;获取所述预设的请求队列中的目标访问请求;解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;当访问完成时,将访问结果传递到对应的目标结果队列中。上述的访问方法,将访问请求存储到预设的请求队列中,在所述预设的请求队列中获取目标访问请求,避免了在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟的问题。
技术领域
本发明涉及移动业务支撑技术领域,尤其涉及一种共享内存访问方法及系统。
背景技术
在高并发情况下,多个访问请求需要访问同一共享内存时,为了保证线程安全,多个访问请求采用加锁机制访问同一共享内存,当一个访问请求访问该共享内存的某个数据时,将访问过程通过加锁的方式进行保护,其它线程访问请求不能进行访问,直到该访问请求操作完成时,其它的访问请求才可访问共享内存。
发明人对现有的共享内存访问方法进行研究发现,由于多个访问请求之间需要对锁竞争,在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟。
发明内容
有鉴于此,本发明提供了一种共享内存访问方法,用以解决现有技术中由于多个访问请求之间需要对锁竞争,在高并发下大量访问请求处于等待状态,导致CPU处理无效的上下文切换,浪费CPU时钟的问题。具体方案如下:
一种共享内存访问方法,应用于内存操作处理器,包括:
当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;
获取所述预设的请求队列中的目标访问请求;
解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;
当访问完成时,将访问结果传递到对应的目标结果队列中。
上述的方法,可选的,获取所述预设的请求队列中的目标访问请求包括:
解析所述预设的请求队列中每一个访问请求的访问优先级;
将所述预设的请求队列中优先级最高的访问请求作为所述目标访问请求。
上述的方法,可选的,当访问完成时,将访问结果传递到对应的目标结果队列中,包括:
解析所述访问结果中包含的线程标识;
依据所述线程标识将所述访问结果传递到与所述线程标识相同目标结果队列中。
上述的方法,可选的,还包括:
查找与所述访问结果对应的目标线程;
令所述目标线程读取所述目标结果队列中的访问结果;
依据所述访问结果继续执行所述目标线程的后续线程。
上述的方法,可选的,还包括:
依据CPU绑定技术,对所述内存操作处理器进行亲缘性绑定。
一种共享内存访问系统,应用于内存操作处理器,包括:
存储模块,用于当内存操作处理器接收到对共享内存的访问请求时,将所述访问请求存储到预设的请求队列中,所述预设的请求队列中包含至少一个访问请求;
获取模块,用于获取所述预设的请求队列中的目标访问请求;
访问模块,用于解析所述目标访问请求包含的访问操作,依据所述访问操作访问所述共享内存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亚信科技(中国)有限公司,未经亚信科技(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810575783.4/2.html,转载请声明来源钻瓜专利网。