来源 UNIX 网络编程(第二版)
- 管道
是一种广泛的IPC形式,即可在程序中使用,也可在shell中使用。管道的问题在于它们只能在具有共同祖先的进程中使用,不过该问题已随有名管道即FIFO的引入而解决了。 - 消息队列
- 同步机制
需要某种同步形式,往往是为了防止多进程同时修改同一文件 记录上锁 信号量 互斥锁 读写锁 读写锁还没有被posix标准化,不过也许不久后会被标准化。
进程、线程与信息共享
(1)左边的两个进程共享存留于文件系统中的某个文件上的某些信息。
(2)中间的两个进程共享驻留在内核中的某些信息,管道、消息队列、信号量是这种共享类型的例子。访问共享信息的每次操作涉及对内核的一次系统调用。
(3)右边的两个进程有一个双方都能访问的共享内存区。每个进程一旦设置好该共享内存区,就能根本不涉及内核而访问其数据。共享该内存区的进程需要某种形势的同步。
线程
Posix.1 线程标准(称 Pthreads)是1995年通过的。从IPC角度看,一个给定的进程内的所有线程共享同样的全局变量(也就是共享内存区的概念对这种模型来说是内在的)。然而我们必须关注的是各个线程间对全局数据的同步访问。同步尽管
不是一种明确的IPC形式,但它确实伴随许多形式的IPC使用,以控制对某些数据的访问。
IPC对象的持续性 以后所说的都是随进程持续的IPC
总结
有些概念可能不对,欢迎留言
相关随笔会继续阐述细节,命名方式已(123...)