Linux程式間的通訊方式有哪些?Linux入門教程

老男孩IT教育機構發表於2021-11-09

  所謂程式間通訊就是在不同程式之間傳播或交換資訊,它是一組程式設計介面,讓程式設計師能夠協調不同的程式,使之能在一個作業系統裡同時執行,並相互傳遞、交換資訊;還可以讓一個程式能夠在同一時間裡處理許多使用者的需求。那麼Linux程式間的通訊方式有幾種?如果你還不清楚,請看下文:

  第一種:管道通訊

  兩個程式利用管道進行通訊時,傳送資訊的程式稱為寫程式;接收資訊的程式稱為讀程式。管道通訊方式的中間介質就是檔案,通常稱這種檔案為管道檔案,它就像管道一樣將一個寫程式和一個讀程式連線在一起,實現兩個程式之間的通訊。寫程式透過寫入端往管道檔案中寫入資訊;讀程式透過讀出端從管道檔案中讀取資訊。兩個程式協調不斷地進行寫和讀,便會構成雙方透過管道傳遞資訊的流水線。

  第二種:訊息緩衝通訊

  多個獨立的程式之間可以透過訊息緩衝機制來相互通訊。這種通訊的實現是以訊息緩衝區為中間介質,通訊雙方的傳送和接收操作均以訊息為單位。在儲存器中,訊息緩衝區被組織成佇列,通常稱之為訊息佇列。訊息佇列一旦建立後即可由多程式共享,傳送訊息的程式可以在任意時刻傳送任意個訊息到指定的訊息佇列上,並檢查是否有接收程式在等待它所傳送的訊息。若有則喚醒它,而接收訊息的程式可以在需要訊息的時候到指定的訊息佇列上獲取訊息,如果訊息還沒有到來,則轉入睡眠等待狀態。

  第三種:共享記憶體通訊

  針對訊息緩衝需要佔用CPU進行訊息複製的缺點,OS提供了一種程式間直接進行資料交換的通訊方式。共享記憶體,顧名思義這種通訊方式允許多個程式在外部通訊協議或同步,互斥機制的支援下使用同一個記憶體段進行通訊,它是一種最有效的資料通訊方式,其特點是沒有中間環節,直接將共享的記憶體頁面透過附接對映到相互通訊的程式各自的虛擬地址空間中,從而使多個程式可以直接訪問同一個實體記憶體頁面。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2841320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章