IPC(InterProcess Communication进程间通信)

IPC(InterProcess Communication进程间通信)分两种,一种是进程发起的,短暂的通信;一种是系统提供的,持续的通信。

首先要提一下,unix C创建进程的方式。使用fork函数,复制当前进程的所有状态甚至内存。

第一种IPC有两种常见的方式。Pipe和FIFO。
1.Pipe管道。在进程复制之前,向系统申请一个pipe(管道);在进程复制之后,两个进程都能获得管道的句柄,从而进行通信。

2.FIFO。进程之间通信,还能通过对文件操作的方式。如果这个文件存在于内存之中,效率问题自然也被解决了。

第二种IPC被称为System V IPC有三种常见的方式。Message Queue,Semaphore和Shared Memory。
3.Message Queue消息队列。一个进程向系统的消息队列存放数据,其他进程获取这些数据。

4.Semaphore信号量。多个进程监听一个信号量时,当一个信号量被释放后某个获得信号量的进程将被激活,监听中的进程则继续等待信号量被其他进程释放。

5.Shared Memory共享存储。一个进程向系统申请一片共享存储的空间,当有的进程获得共享存储空间的句柄,则可以通过句柄使用那一段空间。

你可能感兴趣的:(IPC(InterProcess Communication进程间通信))