[发明专利]一种用于实现在进程间进行数据交互访问的方法及其装置有效
申请号: | 201210001254.6 | 申请日: | 2012-01-04 |
公开(公告)号: | CN103197979B | 公开(公告)日: | 2017-05-03 |
发明(设计)人: | 李晓波;李永亮 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 隆天知识产权代理有限公司72003 | 代理人: | 张浴月,张龙哺 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 实现 进程 进行 数据 交互 访问 方法 及其 装置 | ||
技术领域
本申请涉及进程间数据访问,尤其涉及一种用于实现在进程间进行数据交互访问的方法及其装置。
背景技术
在实际应用中,为了提高设备处理复杂数据的能力和速度,经常需要进程间相互协作,共同完成任务,例如,完成特定的数据传输、数据共享、事件通知、资源共享、进程控制等任务。
在已知技术中,由于各进程的用户空间(即各进程私有的虚拟内存地址空间)是相互独立的,不能直接相互访问,因此,进程间进行数据交换的常用方式只有通过共享文件、匿名管道、信号量、消息队列和共享内存等技术手段来进行,它们所使用的数据交换方式都是由一个进程向特定的区域写入数据,然后,另一个进程从这些区域读出上一个进程所写入的数据,从而达到进程间相互协作的目的。
然而上述已有的实现方案仅仅是实现了进程间数据的共享,而不能提供进程间数据之间关系的共享,即不能实现进程间数据的交互访问。例如专利申请编号200610067532.2的专利中就描述了进程间数据共享的一种实现,但不能提供进程间数据的交互式访问,尤其不能提供进程间数据的直接的实时交互式访问。
其次,在目前的实现进程间相互协作的方案中,对共享内存的管理大多采用简单的链式管理,即在共享内存中简单地创建一个链式存储结构的链表来存储进程在运行中产生的一些结果数据。因此目前的实现进程间相互协作的方案既不能提供进程间数据的直接的实时交互式访问,也不能对共享内存进行高效的利用。
发明内容
本申请提供了一种用于实现在进程间进行数据交互访问的方法,所述方法包括:步骤1,将需要交互访问的多个进程连接到同一个共享内存段;以及步骤2,将所述多个进程中需要共享的数据结构分配到所述共享内存段,以使所述多个进程之间共享所述数据结构包含的成员变量的状态关系,和/或所述数据结构产生的结果数据之间的关系。
本申请还提供了一种用于实现在进程间进行数据交互访问的装置,所述装置包括:连接模块,用于将需要交互访问的多个进程连接到同一个共享内存段;以及分配模块,用于将所述多个进程中需要共享的数据结构分配到所述共享内存段,以使所述多个进程之间共享所述数据结构包含的成员变量的状态关系,和/或所述数据结构产生的结果数据之间的关系。
根据本申请的用于实现在进程间进行数据交互访问的方法和装置,不但为进程间数据的直接的实时交互式访问提供了一种可能的实现,而且,本申请可以是跨操作系统平台的。另外,如前所述,由于本申请所采用的共享内存管理方式类似于Linux内核的slab管理方式,因此,本申请还能够实现对共享内存的高效管理。
附图说明
下面将参照所附附图来描述本申请的实施例,其中:
图1示例性示出了在本申请的用于实现在进程间进行数据交互访问的方法中进程获取共享内存的一个实施例的示意图;
图2示例性示出了在本申请的用于实现在进程间进行数据交互访问的方法中共享内存初始化后的内存池结构的一个实施例的示意图;
图3示例性示出了在本申请的用于实现在进程间进行数据交互访问的方法中使用一段时间后的slab结构的一个实施例的示意图;
图4示例性示出了在现有技术的用于实现进程间相互协作的方法中进程共享数据的示意图;
图5示例性示出了在本申请的用于实现在进程间进行数据交互访问的方法中进程共享数据与数据之间的关系的示意图;以及
图6示例性示出了本申请的用于实现在进程间进行数据交互访问的装置的示意图。
具体实施方式
下面将结合图1-图5详细描述本申请,其中,结合图1-图3将描述本申请如何对共享内存进行高效管理,结合图4-图5将描述本申请如何实现在进程间进行数据交互访问。
图1-图3所描述的对共享内存的高效管理是基于如Linux操作系统平台等在一定程度上采用了buddy内存分配原则的任何操作系统平台。
以Linux操作系统平台上运行的任何一个用户进程为例,图1示例性示出了在本申请的用于实现在进程间进行数据交互访问的方法中进程获取共享内存的一个实施例的示意图。
首先,对应于所述用户进程的用户类(User Class)100向一个公用的或为管理内存而编写的内存管理器类(MEM_manager类)110注册所要使用的共享内存的名称与大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210001254.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种聚乳酸微球及其制备方法
- 下一篇:一种无搅拌运动件的溶液搅拌方法及装置