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共享存储。一个进程向系统申请一片共享存储的空间,当有的进程获得共享存储空间的句柄,则可以通过句柄使用那一段空间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容