进程间通信的几种方式
进程通信是指进程之间的信息交换
通信类型
- 共享存储器系统
- 基于共享数据结构的通信方式
(仅适用于传递相对少量的数据,通信效率低,属于低级通信) - 基于共享存储区的通信方式
- 基于共享数据结构的通信方式
- 管道通信系统
管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件(pipe文件)
管道机制需要提供一下几点的协调能力- 互斥,即当一个进程正在对pipe执行读/写操作时,其它进程必须等待
- 同步,当一个进程将一定数量的数据写入,然后就去睡眠等待,直到读进程将数据取走,再去唤醒。读进程与之类似
- 确定对方是否存在
- 消息传递系统
- 直接通信方式
发送进程利用OS所提供的发送原语直接把消息发给目标进程 - 间接通信方式
发送和接收进程都通过共享实体(邮箱)的方式进行消息的发送和接收
- 直接通信方式
- 客户机服务器系统
- 套接字 -- 通信标识型的数据结构是进程通信和网络通信的基本构件
- 基于文件型的 (当通信进程都在同一台服务器中)其原理类似于管道
- 基于网络型的(非对称方式通信,发送者需要提供接收者命名。通信双方的进程运行在不同主机环境下被分配了一对套接字,一个属于发送进程,一个属于接收进程)
- 远程过程调用和远程方法调用
详见:
https://baike.baidu.com/item/远程过程调用协议/6893245?fr=aladdin
- 套接字 -- 通信标识型的数据结构是进程通信和网络通信的基本构件
注:本文参考操作系统课本,只是一些概念性的知识。
如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/9522192.html