[发明专利]一种多进程间的通信方法有效
申请号: | 201110104966.6 | 申请日: | 2011-04-26 |
公开(公告)号: | CN102147751A | 公开(公告)日: | 2011-08-10 |
发明(设计)人: | 马家智;区智殷;王瑞彪 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F21/22 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 通信 方法 | ||
技术领域
本发明涉及计算机技术领域,特别是涉及一种多进程间的通信方法。
背景技术
在Window的桌面应用程序开发中,经常会遇到进程间需要通信的问题。常见的多进程间通信方法有:共享内存方式、匿名管道、命名管道、WM_COPYDATA、Sockets等。在上诉方法中共享内存方法对于多个进程间通信支持最好,而且具有比较好的安全性。
在以共享内存为基础实现多进程间通信的方法中,一般使用客户端/服务器(Client/Server)架构。具体为:在通信系统中有一个Server,由Server来控制共享内存的生存周期。当有新进程加入到通信系统中来时,也是向Server发起请求。当需要退出时也需要告诉Server。当Server无效时,整个通信系统将无法使用。
可见现有的以共享内存为基础实现的多进程通信的方法的最大的缺点,就是在通信中过于依赖Server,所有的应用程序都认为Server是可信的,但是当Server被关闭,或者异常时通信就会问题。因此这种多进程间的通信系统仍不可靠。
发明内容
本发明提供了一种多进程间的通信方法,该方法能够实现多进程间的可靠通信。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种多进程间的通信方法,其特征在于,共享内存被划分为数据区和控制区,其中控制区又被划分为静态区和动态区,则任一当前进程加入多进程通信系统的过程包括:
A、当前进程尝试打开共享内存,如果能打开则执行步骤E至步骤G,如果不能打开则执行步骤B至步骤D;
B、当前进程创建共享内存,在共享内存的静态区写入共享内存信息;其中共享内存信息包括:数据区的读写互斥、动态区的读写互斥和临时服务进程权限互斥;
C、当前进程根据临时服务进程权限互斥获得临时服务进程权限;
D、当前进程将自身的地址及互斥写入动态区,等待其他进程加入该多进程通信系统;
E、当前进程访问共享内存的静态区,获得共享内存信息;
F、当前进程根据动态区的读写互斥获得动态区的访问权限,从动态区获取临时服务进程的地址以及临时服务进程的互斥,然后释放动态区的访问权限;
G、当前进程根据临时服务进程的地址和互斥实现与服务进程的通信,进而加入该多进程通信系统。
所述步骤D进一步包括:
当前进程将自身的地址及互斥写入动态区之前,根据动态区的读写互斥获得动态区的访问权限;
当前进程将自身的地址及互斥写入动态区之后,释放对动态区的访问权限。
所述动态区用于保存临时服务进程的地址和互斥,且只有临时服务进程能改写动态区的信息。
所述步骤G包括:
G1、当前进程向临时服务进程请求加入该多进程通信系统,临时服务进程将当前进程的地址以及互斥同步给该多进程通信系统中的其他进程;
G2、当前进程向临时服务进程请求该多进程通信系统中的其他进程的地址以及互斥,临时服务进程将所述其他进程的地址和互斥同步给当前进程;
G3,开始多进程间的通信。
当有进程退出所述多进程通信系统时,该方法进一步包括:
退出的进程释放本进程的互斥;
多进程通信系统中的其他进程检测到有进程退出后,执行以下步骤:判断退出的进程是否为临时服务进程,如果是则争夺临时服务进程权限;如果争夺成功,则获取动态区的访问权限,将自身的地址及互斥写入动态区,然后释放对动态区的访问权限。
多进程通信系统中的其他进程检测到有进程退出后,所执行的步骤还包括:
当判断出退出的进程不是临时服务进程时,无操作;
以及在争夺临时服务进程权限失败时,无操作。
在所述判断退出的进程是否为临时服务进程之前进一步包括:删除退出的进程在本进程中的记录。
所述判断退出的进程是否为临时服务进程包括:判断退出的进程的互斥是否与动态区中的临时服务进程的互斥相同,如果相同,则退出进程是临时服务进程。
所述争夺临时服务进程权限包括:获取静态区中的临时服务进程权限互斥,如果能够根据所获取的临时服务进程权限互斥能够获得临时服务进程权限,则争夺成功。
所述多进程通信系统中的其他进程检测到有进程退出包括:多进程通信系统中的其他进程通过应用程序编程接口API等待互斥的方式,检测出有进程退出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110104966.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:玻璃板成型装置及其成型方法
- 下一篇:猪粪便的处理方法及装置