什麼是程序間通訊?


程序間通訊 (IPC) 是一種允許程序之間交換資料的機制。它能夠在程序之間共享資源和資料,而不會產生干擾。

在作業系統中併發執行的程序可以是獨立程序或合作程序。

一個程序是獨立的,它可能會受到或不會受到系統中其他正在執行的程序的影響。任何不與其他程序共享資料的程序都是獨立的。

假設如果一個程序是合作的,那麼它可能會受到系統中正在執行的其他程序的影響。任何與另一個程序共享資料的程序都稱為合作程序。

以下是程序間通訊的示意圖:

程序合作的原因

允許程序合作的原因有很多,如下所示:

  • 資訊共享 - 多個使用者對同一資訊感興趣。我們必須提供一個環境來允許併發訪問此類資訊。

  • 計算速度加快 - 如果我們希望某個特定任務執行得更快,我們必須將其分解成子任務,然後每個子任務將與其他子任務並行執行。只有當計算機具有多個處理單元時才能實現加速。

  • 模組化 - 系統可以以模組化的方式構建,將系統功能劃分為單獨的程序或執行緒。

  • 便利性 - 單個使用者可以同時處理許多工。例如,使用者可以並行編輯、編譯和列印。

合作程序需要一個 IPC 機制,允許它們交換資料和資訊。

IPC 模型

IPC 有兩種基本模型,如下所示:

共享記憶體

建立一個由合作程序共享的記憶體區域。然後,程序可以透過讀取和寫入共享區域中的資料來交換資訊。

訊息傳遞

通訊透過合作程序之間交換的訊息進行。訊息傳遞對於交換少量資料很有用,因為不需要避免衝突。

與共享記憶體相比,它更容易使用系統呼叫實現,因此它需要核心執行更耗時的任務。

更新於: 2021年12月1日

6K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.