[发明专利]一种进程间通讯的方法及装置在审
申请号: | 201611069320.8 | 申请日: | 2016-11-29 |
公开(公告)号: | CN106648928A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 朱晨 | 申请(专利权)人: | 成都广达新网科技股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 成都九鼎天元知识产权代理有限公司51214 | 代理人: | 徐静 |
地址: | 610041 四川省成都市高新区*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 通讯 方法 装置 | ||
技术领域
本发明涉及嵌入式操作系统进程间通讯领域,尤其是一种进程间通讯的方法及装置。
背景技术
目前的数通设备上运行的操作系统一般是以LINUX内核为核心结合各厂商自己的系统管理和应用程序组建而成的。整个系统在设计上往往会用到多进程的软件架构,如此也就不可避免的有进程间通讯的需求。在整个软件系统当中,如果进程间通讯的需求非常普遍,在系统平台角度就很有必要提供一套通用、便捷、可靠、高效的进程间通讯机制供上层软件开发使用。而不是让上层软件在每当有进程间通讯需求时直接使用LINUX提供的各种丰富的系统调用来实现。
上层软件开发直接使用系统调用实现进程间通讯的缺点是显而易见的:
一、涉及进程间通讯的软件开发需要熟悉操作系统的各种机制,开发上有一定难度,开发人员独立开发,系统整体的质量难以保证;
二、开发人员独立为自己开发的模块开发进程间通讯的机制,从整体上看也是开发工作的重复投入;
三、会增加后期软件维护的难度,因为重复投入之后系统中往往会存在大量功能类似却实现各不相同的的冗余代码。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种进程间通讯的方法及装置,在使用基于流的UNIX域套接字将各进程组建为星形通讯拓扑的基础上(如图1所示),用远程过程调用的形式(如图2所示)实现任意两个进程间的消息传递。供平台之上的软件开发使用。
本发明采用的技术方案如下:
一种进程间通讯的方法包括:
通讯拓扑建立步骤,设置n个进程,每个进程静态设置唯一标识的进程ID;选择一个进程作为通讯拓扑中SERVER端;其余n-1个进程分别对应作为n-1个CLIENT端;n个进程创建基于流的UNIX域套接字并绑定自身的SOCK PATH标识,SERVER端进入侦听并接受CLIENT端发起的连接,CLIENT端周期性向SERVER端发起连接直到连接建立为止;SERVER端靠接受连接时获取对端的CLIENT端的SOCK PATH标识识别出对端的CLIENT端进程ID;SERVER和CLIENT端都为自己保存已连接进程记录;
其中进程间通讯采用远程过程调用(RPC)的形式:
基于通讯拓扑建立步骤建立的通信拓扑,任意一个进程可以作为源进程发送请求消息,期望应答的目的进程是除源进程以外的任意进程;目的进程接收到请求消息后执行请求回调函数完成本次请求的响应,然后可选的向源进程发送应答消息(根据请求消息中的应答标志位)从而完成一次会话;
上层软件在源进程发送请求时要指定:目的进程ID、操作码、超时参数、发送的消息体、请求类型,若是同步请求还要指定承载应答消息的BUFFER,若是异步请求要可选的给出应答处理回调函数和回调参数;当异步请求不指定应答处理回调函数时,应答属性就是无需应答,否则就是需要应答,所有的同步请求应答属性都是需要应答;上层软件在设计时如果期望某个进程响应某种请求操作码,就要提前在该进程内注册该操作码对应的请求回调函数;请求类型指的是同步请求或者异步请求;
进一步的,请求回调函数的返回值和参数如下:
请求回调函数由上层软件定,用于在一个进程内响应某种操作码对应的请求,在一个进程中,一个操作码对应一个请求回调函数,函数返回值0表示执行成功,非0表示相应的错误;请求回调函数的入参包括:请求源进程ID、操作码、请求消息载荷指针、请求消息载荷长度;出参包括:应答载荷指针、应答载荷长度;根据权利要求1所述的一种进程间通讯的方法,其特征在于进程间传递的消息格式为:
消息格式由消息头和消息载荷两部分组成,如图3所示:消息头包括16bit目的进程ID、16bit源进程ID、32bit序列号、16bit操作码、16bit应答错误码、16bit消息长度、1bit类型标志位、1bit应答标志位、14bit保留位;其中类型标志位为0时表示消息类型是请求,为1时表示消息类型是应答;应答标志位仅当类型标志位为0时有意义,为1表示请求消息需要应答,为0表示请求消息不需要应答;应答错误码仅当类型标志位为1时有意义,当类型标志位为0时,应答错误码取值为0;消息长度表示消息头加载荷的整体消息长度;消息载荷部分长度不定,范围是0到65519字节;
所述应答处理回调函数的返回值和参数如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都广达新网科技股份有限公司,未经成都广达新网科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611069320.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:异常信息收集方法及服务器
- 下一篇:一种开关系统及开关模式实现方法