第六十二章、什麼是進程間通信?Linux下進程間通信有哪些目的

第六十二章、什麼是進程間通信?Linux下進程間通信有哪些目的

在編程中我們通常需要使用多個相關的進程來執行有關操作,因此進程之間必須進行通信來共享資源和信息,所以,要求內核提供必要的機制,這些機制通常稱為進程間通信(IPC)。

進程間通信有如下一些目的:

1、 數據傳輸。一個進程可能要發送數據到另一個進程。

2、 共享數據。多個進程想要操作共享的數據。一個進程修改了數據,其他共享該數據的進程應該立即看見這個變化。

3、 通知事件。當一些事件發生時,進程也許會向另一個進程或一組進程發消息通知事件的發生。例如:進程終止時,它要通知它的父進程。接收者可能是被異步通知的,這時它的正常處理被中斷,由此,接收者可以選擇等待通知。

4、 資源共享。一些要求相互操作的進程需要自行定義一些協議,這些協議針對它們要訪問的特定的資源,這些協議是通過使用鎖和同步機制來實現的,而鎖和同步機制是建立在內核提供的基本功能之上的。

5、 進程控制。有些進程,例如,debugger希望完全控制另一個進程(目標進程)的執行。控制進程希望能夠攔截為目標進程設計的所有的陷入和異常,並且能夠及時知道目標進程的狀態改變。


分享到:


相關文章: