行程間通訊

行程間通訊(Inter-Process Communication,簡稱IPC)是一種技術或方法,用於在至少兩個行程執行緒之間傳輸資料或訊號。每個行程都有自己獨立的系統資源,彼此隔離。為了實現不同行程之間的資源訪問和協調工作,需要使用行程間通訊。

行程間通訊
相互作用類型
上級分類技術 編輯
Stack Exchange標籤https://stackoverflow.com/tags/ipc 編輯
Inter-Process Communication」的各地常用名稱
中國大陸進程間通信
臺灣行程間通訊

通常,使用行程間通訊的兩個應用可以分為客戶端伺服器主從式架構)。客戶端行程請求資料,伺服器行程回應客戶端的資料請求。有些應用既是伺服器又是客戶端,這種情況在分散式計算中很常見。這些行程可以執行在同一台電腦上,也可以執行在通過網路連接的不同電腦上。

IPC對於微核心和nano核心的設計過程非常重要。微核心減少了核心提供的功能數量,然後通過IPC與伺服器通訊來取得這些功能。與普通的單核心相比,IPC的數量大幅增加。

使用IPC的理由

  • 資訊共享:Web伺服器,通過網頁瀏覽器使用行程間通訊來共享web檔案(網頁等)和多媒體
  • 資訊處理加速
  • 模組化
  • 私有權分離

主要的IPC方法

方法 提供方(作業系統或其他環境)
檔案 多數作業系統
訊號 多數作業系統
Berkeley通訊端 多數作業系統
訊息佇列 多數作業系統
管道 所有的POSIX 系統,Windows.
命名管道 所有的POSIX系統,Windows.
號誌 所有的POSIX系統,Windows.
共享主記憶體 所有的POSIX系統,Windows.
訊息傳遞 用於MPI規範,Java RMICORBAMSMQ英語Microsoft Message QueuingMailSlot英語MailSlot以及其他.
主記憶體對映檔案 所有的POSIX系統,Windows.

參考文獻