(转)IPC 概述

IPC 概述
IPC(Inter-Process Communication,进程间通信)
IPC是一系列面向多线程间数据交换的技术集合。这里所说的多线程间的数据交换,包括进程内线程间的数据交换和进程间的线程数据交换。如果进程运行在不同的PC上,需要网络建立连接完成进程间通信。(这种情况极其复杂)。IPC技术的方法被分为:消息发送、同步、内存共享和远程过程调用(RPC)这几方面功能。(WIKI)个人理解
IPC:进程间通信,就是在不同进程之间传播或交换信息。进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。(百度百科)
两种解释,WIKI侧重定义;百度百科侧重应用。进程的实体是线程,进程间的通信说到根本就是线程间的通信。这包括以下几个应用场合
l 同一计算机,进程内的多线程通信。(同步、互斥、锁等技术和概念)这点我们一般不做IPC,仅仅按多线程技术处理。
l 同一计算机,进程间的通信。
l 不同计算机,进程间的通信。

RPC:远程过程调用。在计算机科学领域,RPC被认为是IPC的一种。RPC可以在PC内或者通过网络在PC间进行function call。程序员可以将一些核心的API集中到一个程序中,通过RPC,其他需要该核心API的程序可以直接调用,提高代码的共享程度。(WIKI)
RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。

转自:http://hi.baidu.com/leo_han/item/c5cb8194034109dd1a49df33
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值