行程間通訊
行程間通訊
上級分類 | 技術 |
---|---|
Stack Exchange標籤 | https://stackoverflow.com/tags/ipc |
「Inter-Process Communication」的各地常用名稱 | |
---|---|
中國大陸 | 進程間通信 |
臺灣 | 行程間通訊 |
行程間通訊(Inter-Process Communication,簡稱IPC)是一種技術或方法,用於在至少兩個行程或線程之間傳輸數據或訊號。每個行程都有自己獨立的系統資源,彼此隔離。為了實現不同行程之間的資源訪問和協調工作,需要使用行程間通訊。
通常,使用行程間通訊的兩個應用可以分為客戶端和伺服器(主從式架構)。客戶端行程請求數據,伺服器行程響應客戶端的數據請求。有些應用既是伺服器又是客戶端,這種情況在分散式計算中很常見。這些行程可以執行在同一台電腦上,也可以執行在通過網絡連接的不同電腦上。
IPC對於微內核和nano內核的設計過程非常重要。微內核減少了內核提供的功能數量,然後通過IPC與伺服器通訊來取得這些功能。與普通的整塊性核心相比,IPC的數量大幅增加。
使用IPC的理由
- 資訊共用:Web伺服器,通過網頁瀏覽器使用行程間通訊來共用web檔案(網頁等)和多媒體
- 資訊處理加速
- 模組化
- 私有權分離
主要的IPC方法
方法 | 提供方(作業系統或其他環境) |
---|---|
檔案 | 多數作業系統 |
訊號 | 多數作業系統 |
Berkeley通訊端 | 多數作業系統 |
訊息佇列 | 多數作業系統 |
管道 | 所有的POSIX 系統,Windows. |
命名管道 | 所有的POSIX系統,Windows. |
訊號量 | 所有的POSIX系統,Windows. |
共用主記憶體 | 所有的POSIX系統,Windows. |
訊息傳遞 | 用於MPI規範,Java RMI,CORBA,MSMQ,MailSlot以及其他. |
主記憶體對映檔案 | 所有的POSIX系統,Windows. |