题目来源 :看准APP面经
- 进程通信
对于这个问题,可以分两个方面来回答:
本地进程之间的通信方式
远程进程之间的通信方式
**本地的进程间通信(IPC Interprocess Communication)**总结为下面4类
消息传递
-
管道
不足:数据(消息)单向流动,只能是字节流格式的消息,消息的大小受限,只能用于具有亲缘关系的进程之间。
FIFO,也称为命名管道,是一种文件类型,以一种特殊设备文件形式存在于文件系统中
消息队列,消息的链表
特点:消息具有优先级,独立于发送和接受进程,可以实现消息的随机查询。 -
信号量
同步:S = 0,进程A执行完进行V操作,进程B执行前执行P操作,这样B就可以等A执行完再执行。
互斥:S = 1,进程执行前进行P操作,执行后进行V操作。 -
共享内存
特点:直接对内存存取,通信快,但是多个进程可以同时操作,需要用信号量进行同步 -
远程过程调用(Remote Procedure Call)
网络中进程之间的通信
首要解决的问题是如何唯一标识一个进程,在本地可以**通过进程PID来唯一标识一个进程,**但是在网络中这是行不通的,TCP/IP五层网络模型中传输层的“IP+端口”可以唯一标识主机中的应用程序(进程