进程是一个独立的资源分配单元
,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的
,没有关联,不能在一个进程中直接访问另一个进程的资源
(例如打开的文件描述符)。
但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递
等,因此需要进程间通信( IPC:Inter Processes Communication )。
进程间通信的目的:
数据传输:一个 进程需要将它的数据 发送给另一个进程。 通知事件:一个进程需要向另一个或一组进程 发送消息,通知它(它们)发生了 某种事件( 如进程终止时要通知父进程)。 资源共享:多个进程之间 共享同样的资源 。为了做到这一点,需要内核提供互斥和同步机制。 进程控制:有些进程 希望完全控制另一个进程的执行 (如 Debug 进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。
Linux 操作系统支持的主要进程间通信的通信机制