对于在父、子进程间共享状态信息,进程有一个非常清晰的模型:共享文件表,但是不共享用户地址空间。进程有独立的地址空间既是优点也是缺点。这样一来,一个进程不可能不小心覆盖另一个进程的虚拟内存,这就消除了许多令人迷惑的错误———这是一个明显的优点。
另一方面,独立的地址空间使得进程共享信息变得更加困难。为了共享信息,它们必须使用显示的 IPC(进程间通信)机制。基于进程的设计的另一个缺点是,它们往往比较慢,因为进程控制和 IPC 的开销很高。
IPC通信的方式有如下几种:
- 通过函数和信号,将信息发送到同一主机上的其它进程。
- 通过套接字,在不同主机上的进程间交换字节流。
值得一提的,Unix IPC 通常指的是所有允许进程和同一台主机上的其他进程进行通信的技术。其中包括管道、先进先出(FIFO),系统 V 共享内存,以及系统 V 信号量( semaphore )。
网友评论