程序間通訊的不同模型


程序間通訊是由作業系統提供的機制,允許程序相互通訊。這種通訊可能涉及一個程序讓另一個程序知道某些事件已經發生,或者從一個程序向另一個程序傳輸資料。

說明程序間通訊的示意圖如下:

Interprocess Communication

程序間通訊的模型如下:

共享記憶體模型

共享記憶體是可以被多個程序同時訪問的記憶體。這樣做是為了讓程序能夠相互通訊。所有 POSIX 系統以及 Windows 作業系統都使用共享記憶體。

共享記憶體模型的優點

與同一臺機器上的訊息傳遞模型相比,共享記憶體模型的記憶體通訊速度更快。

共享記憶體模型的缺點

共享記憶體模型的一些缺點如下:

  • 所有使用共享記憶體模型的程序都需要確保它們不會寫入相同的記憶體位置。
  • 共享記憶體模型可能會產生同步和記憶體保護等問題,需要解決。

訊息傳遞模型

多個程序可以讀取和寫入訊息佇列中的資料,而無需相互連線。訊息儲存在佇列中,直到接收者檢索它們。訊息佇列對於程序間通訊非常有用,並且大多數作業系統都使用它們。

訊息傳遞模型的優點

訊息傳遞模型比共享記憶體模型更容易實現。

訊息傳遞模型的缺點

訊息傳遞模型的通訊速度比共享記憶體模型慢,因為連線設定需要時間。

共享記憶體模型和訊息傳遞模型的示意圖如下:

Models of Interprocess Communication

更新於:2020年6月24日

13K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.