(1)IPC简介
Unix/Linux IPC简介 简述 1. 消息传递演变过程 2. 同步形式演变 进程、线程与信息共享 IPC对象的持续性 名字空间 fork、exec和exit对IPC对象的影响 总结 参考资料 简述 IPC是进程间通信(interprocess communication)的简称。用来描述运行在一个操作系统之上的不同进程间各种消息传递的方式。 IPC在使用过程中需要同步参与一起运行。 1. 消息传递演变过程 管道(pipe):只能在具有共同祖先(指父子进程关系)的进程间使用,有名管道fifo可以在任意进程间使用 System V消息队列:可在同一主机上有亲缘关系或无亲缘关系的进程间使用。 Posix消息队列:可在同一主机上有亲缘关系或无亲缘关系的进程间使用。 远程过程调用: 2. 同步形式演变 使用文件系统特性同步 记录上锁(record-locking) System V信号量 Posix信号量和Posix共享内存区 互斥锁(mutex)和条件变量(condition variable):主要用于线程间同步,也能提供进程间的同步 读写锁(read-write-lock) 进程、线程与信息共享 unix/linux间信息共享的三种方式 两个进程共享存储在文件系统中的某个文件上的信息。访问该文件,每个进行都要经过内核(如read,write,lseek等)