天天看點

Linux系統程式設計——程序間通信概述

程序是一個獨立的資源配置設定單元,不同程序(這裡所說的程序通常指的是使用者程序)之間的資源是獨立的,沒有關聯,不能在一個程序中直接通路另一個程序的資源(例如打開的檔案描述符)。

但是,程序不是孤立的,不同的程序需要進行資訊的互動和狀态的傳遞等,是以需要​​程序間通信( IPC:Inter Processes Communication )​​。

程序間通信的目的:

  • 資料傳輸:一個程序需要将它的資料發送給另一個程序。
  • 通知事件:一個程序需要向另一個或一組程序發送消息,通知它(它們)發生了某種事件(如程序終止時要通知父程序)。
  • 資源共享:多個程序之間共享同樣的資源。為了做到這一點,需要核心提供互斥和同步機制。
  • 程序控制:有些程序希望完全控制另一個程序的執行(如 Debug 程序),此時控制程序希望能夠攔截另一個程序的所有陷入和異常,并能夠及時知道它的狀态改變。

Linux 作業系統支援的主要程序間通信的通信機制:

Linux系統程式設計——程式間通信概述

繼續閱讀