訊息傳遞與共享記憶體程序通訊模型


訊息傳遞模型和共享記憶體模型是程序間通訊的模型。有關這些模型的詳細資訊如下所示:

訊息傳遞程序通訊模型

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

演示程序通訊的訊息傳遞模型的圖表如下所示:

message passing model of process communication

在上圖中,程序 P1 和 P2 都可以訪問訊息佇列並存儲和檢索資料。

訊息傳遞模型的一個優點是它更容易構建並行硬體。這是因為訊息傳遞模型對較高的通訊延遲具有相當的容忍性。它也比共享記憶體模型更容易實現。

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

共享記憶體程序通訊模型

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

說明程序通訊的共享記憶體模型的圖表如下所示

Shared Memory Model in OS

在上圖中,程序 1 和程序 2 可以訪問共享記憶體。

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

但是,共享記憶體模型可能會導致需要解決的同步和記憶體保護等問題。

更新於:2020年6月24日

4K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告