在编程中我们通常需要使用多个相关的进程来执行有关操作,因此进程之间必须进行通信来共享资源和信息,所以,要求内核提供必要的机制,这些机制通常称为进程间通信(IPC)。
进程间通信有如下一些目的:
1、 数据传输。一个进程可能要发送数据到另一个进程。
2、 共享数据。多个进程想要操作共享的数据。一个进程修改了数据,其他共享该数据的进程应该立即看见这个变化。
3、 通知事件。当一些事件发生时,进程也许会向另一个进程或一组进程发消息通知事件的发生。例如:进程终止时,它要通知它的父进程。接收者可能是被异步通知的,这时它的正常处理被中断,由此,接收者可以选择等待通知。
4、 资源共享。一些要求相互操作的进程需要自行定义一些协议,这些协议针对它们要访问的特定的资源,这些协议是通过使用锁和同步机制来实现的,而锁和同步机制是建立在内核提供的基本功能之上的。
5、 进程控制。有些进程,例如,debugger希望完全控制另一个进程(目标进程)的执行。控制进程希望能够拦截为目标进程设计的所有的陷入和异常,并且能够及时知道目标进程的状态改变。
閱讀更多 C語言學習探討 的文章