1.管道(pipe)及有名管道(named pipe)
管道可用於具有親緣關係程序間的通訊,有名管道除了具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。
2.訊號(signal)
訊號是在軟體層次上對中斷機制的一種模擬,它是比較複雜的通訊方式,用於通知程序有某事件發生。
3.訊息佇列(message queue)
訊息佇列是訊息的鏈結表。
乙個程序可以給若干個程序傳送訊息,反之,乙個程序可以接受不同程序發來的訊息,顯然,程序中關於訊息佇列的操作是臨界區。
當傳送程序正往接受程序的訊息佇列中新增一條訊息時,接收程序不能同時從該訊息佇列中讀取訊息。反之一樣。
訊息緩衝區通訊機制包括以下內容:
1> 訊息緩衝區,由以下幾項組成的資料結構:
1. 訊息長度
2. 訊息正文
3. 傳送者
4. 訊息佇列指標
2> 訊息佇列首指標,一般儲存在pcb中
1. 互斥訊號量m-mutex,初值為1,用於互斥訪問訊息佇列,在pcb中設定。
2. 同步訊號量m-syn,初值為0,用於訊息計數,在pcb中設定。
3. 傳送訊息原語send
4. 接收訊息原語receive
4.共享記憶體(shared memory)
可以說這是最有用的程序通訊方式,它使得多個程序可以訪問同一塊記憶體空間,不同程序可以及時看到對方程序對共享記憶體中資料的更新。
這種方式需要依靠某種同步操作,如互斥鎖和訊號量等。
這種通訊模式需要解決兩種問題:第一種問題是怎樣提供共享記憶體;第二個是公共記憶體的互斥關係這是程式開發者的責任。
5.訊號量
主要作為程序之間及同一種程序的不同執行緒之間的同步和互斥手段。
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 訊息 剪下板 郵件槽 管道 套接字等。但是,如果在同一臺機器...