1. 程式人生 > >Linux進程間通信的幾種方式

Linux進程間通信的幾種方式

控制進程 ces linux進程 proc 都是 緩沖 地址 進程 機制

一、進程間通信的目的

  • 數據傳輸:一個進程需要將它的數據發送給另一個進程,發送的數據量在一個字節到幾M字節之間
  • 共享數據:多個進程要操作共享數據,一個進程對共享數據
  • 信息傳遞:一個進程需要向另一個進程發送消息,通知它發生了某種事件。
  • 資源共享:多個進程之間共享同樣的數據。為了做到這一點,需要內核提供鎖和同步機制。
  • 進程控制:有些進程希望完全控制另一個進程的執行,此時控制進程希望能夠攔截另一個進程的所有陷入和異常,病能夠及時知道它的狀態改變

二、進程間通信的概念

每個進程各自有不同的用戶地址空間,任何一個進程的變量在另一個進程中都是看不到的,所以進程之間要交換數據必須通過內核,在內核中開辟出一塊緩沖區。一個進程把自己的數據從用戶空間拷貝到內核緩沖區,另一個進程再從內核緩沖區把數據讀走。內核提供的這種機制稱為進程間通信(IPC,InterProcess Communication)

Linux進程間通信的幾種方式