[发明专利]一种基于共享内存的进程间通讯方法有效

专利信息
申请号: 201310432622.7 申请日: 2013-09-22
公开(公告)号: CN103514053B 公开(公告)日: 2017-01-25
发明(设计)人: 刘庆云;李世明;刘洋;秦鹏;郑超;孙永;周舟;杨威 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F9/54 分类号: G06F9/54;G06F9/44
代理公司: 北京轻创知识产权代理有限公司11212 代理人: 杨立
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于共享内存的多进程间通讯方法,本发明以循环队列形式对共享内存进行管理,共享内存供多个进程以队列形式顺序读写,读或写以块为单位,块大小由用户控制;共享内存被多进程共享,进程分为只读进程和只写进程;支持多个进程同时对该共享内存进行读操作,只能有一个进程对该共享内存进行写操作,读写不冲突,能同时进行;本发明所述方法大大减少了进程间交换信息时经由内核的拷贝次数,提高了后台系统的吞吐量,降低了系统的开销,有效地提高了系统的性能。
搜索关键词: 一种 基于 共享 内存 进程 通讯 方法
【主权项】:
一种基于共享内存的多进程间通讯方法,其特征在于,包括如下步骤:步骤1:写进程创建包括管理单元、循环队列和内存池的共享内存,并在管理单元中存储关于整个共享内存的管理信息;步骤2:写进程从管理单元中获取关于当前写进程的操作位置,根据每次待写入数据的大小,顺序开辟与待存入数据大小等大的第N(N=1,2,3…)存储块,将待写入的数据存入相应存储块中;步骤3:开辟第N存储块时,记录所述第N存储块的大小、起始位置、结束位置以及存储的是否为完整数据,上述记录的信息形成第N结构体,并存入循环队列的队尾指针处;同时更新管理单元中关于当前写进程的操作位置的记录;步骤4:在执行步骤2至3的同时,一个或若干个读进程可对共享内存进行读操作;步骤5:每个读进程自循环队列的队头开始,依次读取第N(N=1,2,3…)结构体;步骤6:判断第N结构体是否处于循环队列的队尾,如果是队尾,说明该结构体对应的存储块正在进行写操作,则等待,等到队尾指针不指向该结构体时,执行步骤7;如果不是队尾,则直接执行步骤7;步骤7:根据该结构体中关于第N存储块的位置信息,读取内存池中相应第N存储块中的数据;步骤8:判断所述写进程是否还要向内存池写入数据,如果是,返回步骤2;否则判断内存池中数据是否都已读完,如果未读完则返 回步骤5;否则结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310432622.7/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top