分类: 系统运维
2012-04-02 17:18:40
我们已经深入探讨了许多形式的进程间通信:管道、命名管道(FIFO),和三个普遍称为XSI IPC的IPC形式(消息队列、信号量和共享内存)。信号量其实是一个同步原始例程,不是真实的IPC,并通常用来同步对一个共享资源的访问,比如一个共 享内存段。通过管道,我们看了popen函数的实现、看了协进程,已经标准I/O库的缓冲带来的缺陷。
在比较消息队列和全双工管道的计时、 信号量和记录锁的计时后,我们可以做出如下建议:学习管道和FIFO,因为这两个基本技术仍可以被有效地使用在许多应用里。避免在新的应用里使用消息队列 和信号量。全双工管道和记录锁应该被考虑,因为它们要简单地多。共享内存仍然有它的用处,尽管相同的功能可以通过mmap函数的使用来提供(14.9 节)。
在下章,我们将看下网络IPC,它允许进程跨过机器边界来通信。