进程间通信(IPC,Inter-Process Communication):指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。 进程间通信技术包括消息传递、同步、共享内存和远程过程调用。 IPC是一种标准的Unix通信机制。
有两种类型的进程间通信(IPC)。
1 本地过程调用(LPC Local P
rocedure C
all):
LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。
2 远程过程调用(RPC R
eomote P
rocedure C
all):
特指一种隐藏了过程调用时实际通信细节的IPC方法。客户端将调用一个本地方法,而这个本地方法则是负责透明的与远程服务端进行过程间通信。这个本地方法会讲相关参数顺序打包到一个消息中,然后把这个消息发送给服务端提供的方法,服务端的方法会从消息中解出序列化发出来的参数,然后执行,最后仍以同样的方式将方法的返回值发送给客户端
LPC和RPC都属于远程同步过程调用,远程的意思是指跨越进程边界进行调用,包括本机进程间调用和跨越机器边界的调用。本来只需要一个RPC就足够了,它同时可用于进行本机调用和网络调用,但由于网络调用的复杂性,微软发明了一套只用于本机跨进程调用的机制(专利产品)就是LPC。由于LPC不涉及网络控制,因此大大简化了远程调用的流程,也提高了调用效率,当RPC用于网络调用时,RPC还是RPC,当RPC用于本机调用时,实际上执行的是LPC,系统自动判断的。LPC在操作系统中无处不在,很多API都使用了LPC,尤其是那些需要在内核态和用户态之间切换的调用全部使用了LPC。
引用:
https://blog.csdn.net/u013894427/article/details/82789837
https://bbs.csdn.net/topics/300244377/