什麼是程序間通訊?
程序間通訊 (IPC) 是一種允許程序之間交換資料的機制。它能夠在程序之間共享資源和資料,而不會產生干擾。
在作業系統中併發執行的程序可以是獨立程序或合作程序。
一個程序是獨立的,它可能會受到或不會受到系統中其他正在執行的程序的影響。任何不與其他程序共享資料的程序都是獨立的。
假設如果一個程序是合作的,那麼它可能會受到系統中正在執行的其他程序的影響。任何與另一個程序共享資料的程序都稱為合作程序。
以下是程序間通訊的示意圖:

程序合作的原因
允許程序合作的原因有很多,如下所示:
資訊共享 - 多個使用者對同一資訊感興趣。我們必須提供一個環境來允許併發訪問此類資訊。
計算速度加快 - 如果我們希望某個特定任務執行得更快,我們必須將其分解成子任務,然後每個子任務將與其他子任務並行執行。只有當計算機具有多個處理單元時才能實現加速。
模組化 - 系統可以以模組化的方式構建,將系統功能劃分為單獨的程序或執行緒。
便利性 - 單個使用者可以同時處理許多工。例如,使用者可以並行編輯、編譯和列印。
合作程序需要一個 IPC 機制,允許它們交換資料和資訊。
IPC 模型
IPC 有兩種基本模型,如下所示:
共享記憶體
建立一個由合作程序共享的記憶體區域。然後,程序可以透過讀取和寫入共享區域中的資料來交換資訊。
訊息傳遞
通訊透過合作程序之間交換的訊息進行。訊息傳遞對於交換少量資料很有用,因為不需要避免衝突。
與共享記憶體相比,它更容易使用系統呼叫實現,因此它需要核心執行更耗時的任務。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP