程序間通訊方式

2021-08-17 06:46:07 字數 757 閱讀 3081

程序間(ipc)幾種通訊方式

多個程序可以共享系統中的各種資源,但是其中許多資源一次只能為乙個程序使用,我們把一次只允許乙個程序使用的資源稱之為臨界資源。許多物理裝置都屬於臨界資源,如印表機等。

對臨界資源的訪問,必須互斥的進行,在每個程序中,訪問臨界資源的那段**叫做臨界區。

linux下程序間通訊的幾種方式:

1)  管道及有名管道:管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有血緣關係的程序間使用。程序的血緣關係通常指父子程序關係。

有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間通訊。

2)  訊號:訊號是比較複雜的通訊方式,用於通知接受程序有某種事件發生,除了用於程序間通訊外,程序還可以傳送訊號給程序本身。

3)  訊號量:訊號量是乙個計數器,可以用來控制多個程序對共享資源的訪問。它通常作為一種鎖機制,防止某程序正在訪問共享資源時,其他程序也訪問該資源。主要作為程序間以及同一程序不同執行緒之間的同步方式。

4)  訊息佇列:訊息佇列是訊息的鍊錶,有足夠許可權的程序可以向佇列中新增訊息,被賦予讀許可權的程序則可以讀走佇列中的訊息。訊息佇列克服了訊號承載資訊量少,管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

5)  共享記憶體:使得多個程序可以訪問同一塊記憶體空間,這段共享記憶體由乙個程序建立,但多個程序都可以訪問,是最快的ipc形式。是針對其他通訊機制執行效率較低而設計的。往往與其他通訊機制,如訊號量結合使用,來達到程序間同步及互斥。

6) 套介面:可用於不同機器之間的程序間通訊。

程序間通訊方式

謝謝作者 用於程序間通訊 ipc 的四種不同技術 共享記憶體,臨界區,管道,訊息 1.訊息傳遞 管道,fifo,posix和system v訊息佇列 2.同步 互斥鎖,條件變數,讀寫鎖,檔案和記錄鎖,posix和system v訊號燈 3.共享記憶體區 匿名共享記憶體區,有名posix共享記憶體區,...

程序間通訊方式

遇到一考題,讓寫出程序間的通訊方式,突然給忘了,只想起管道和共享記憶體以及套接字。現在總結一下程序間的通訊方式以及他們之間的區別 1 管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。2 有名管道 named pip...

程序間通訊方式

程序間通訊主要包括管道,系統ipc 包括訊息佇列,訊號量 共享儲存 socket套接字。windows系統程序間通訊 windows提供了多種機制,使得應用程式之間能夠快速 方便地共享資料和資訊。這些機制包括rpc com ole dde 訊息 剪下板 郵件槽 管道 套接字等。但是,如果在同一臺機器...