[发明专利]多进程通信系统及其建立和通信方法在审
申请号: | 201210183563.X | 申请日: | 2012-06-05 |
公开(公告)号: | CN103455380A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 严向阳 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 上海智信专利代理有限公司 31002 | 代理人: | 胡美强;王聪 |
地址: | 201617 上海市松*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 通信 系统 及其 建立 方法 | ||
技术领域
本发明涉及一种多进程通信系统及其建立和通信方法,特别是涉及一种用于嵌入式系统的多进程通信系统及其建立和通信方法。
背景技术
现有的操作系统,尤其是嵌入式系统中每个进程都有自己的地址空间,一个进程不能存取另一个进程的内存数据。虽然两个进程可以用具有相同值的指针寻址,但是这两个进程还是将被映射到不同的物理地址。所读写的只是它们各自的数据,这样就避免了进程之间的相互干扰。例如,在进程A声明了一个指针P,这个指针只能被本进程A使用,在其他进程B中使用P,将会导致致命的问题,所以现有操作系统中禁止这种操作。这样就实现了对每个进程的执行环境进行保护和隔离。而且这也正是嵌入式系统所要实现的基本功能。
在实际应用中,嵌入式系统中往往有众多进程需要同时运行,而且各个进程之间常常需要交换数据或进行数据通信等。并且现有技术中提供了许多系统调用使我们能够进行进程间的通信(IPC,Inter-Process Communication),通过这些系统调用我们可以控制不同进程间的数据交换。
常见的进程间通信IPC方式主要有以下几种:
无名管道(Pipe)和有名管道(Named Pipe),管道是一种半双工的通信方式,数据只能单向流动。无名管道只能用于具有亲缘关系进程间的通信,例如父进程和子进程之间的通信。有名管道克服了管道没有名字的限制,因而,除具有无名管道所具有的功能外,有名管道还允许无亲缘关系进程间的通信。
信号通信(Signal)是比较复杂的通信方式,用于通知接收进程有某种事件发生。信号通信是进程间通信机制中唯一的异步通信机制,可以看作是异步通知。
消息队列(Message Queue)就是消息的链表。消息队列用于两个进程之间的通信,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。
共享内存(Shared Memory)是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。两个不同进程A、B共享内存的意思是,同一块物理内存被映射至进程A和进程B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。通常,由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。由于多个进程可以访问同一块内存区,必然需要某种同步机制,例如采用互斥锁和信号量等。
信号量(Semaphore)是一种计数器的通信方式,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某个进程正在访问共享资源的同时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
套接字(Socket)为更一般的进程间通信机制,可用于不同机器之间的进程间通信。
上述方式都是操作系统中提供的实现IPC的方法。单从技术角度而言,可选择其中任意一个直接使用。然而从应用角度讲,这些都不是完整的解决方案。在嵌入式系统,尤其是通信设备软件系统中,往往需要众多进程协作,进程间通信非常频繁,其中存在有大量的数据交换。由于一个进程可能与其他任何进程通信,多个进程间相互交叉通信下,它们一对一通信或者一对多通信,常常会出现类似网状的通信关系。而且已有的IPC通信方式多适用于两两进程间的通信,在进程之间通信前,两个进程需要建立某种形式的连接。这样,在这种多进程环境下,每两个进程之间需要创建一个IPC实例彼此连接,就形成了如图1所示的类似网状的连接结构。这种网状的连接结构,使得多进程间通信变得十分复杂而难以清晰掌握,另外,存在如此众多的IPC实例,也过多地占用了嵌入式环境下系统宝贵的资源。
发明内容
本发明要解决的技术问题是为了克服现有技术中的多进程通信时构成的通信连接结构复杂而且IPC实例过多导致占用了大量的系统资源的缺陷,提供一种多进程通信系统及其建立和通信方法,通过利用已有的IPC方式,构建了一种星型的通信连接结构,克服现有网状的通信连接结构所带来的弊端。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种多进程通信系统,其特点是所述多进程通信系统包括一中央进程和多个进程;
其中各个所述进程分别通过IPC方式连接至所述中央进程;所述中央进程将各个进程的通信连接标识和进程标识的写入一对应关系表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210183563.X/2.html,转载请声明来源钻瓜专利网。