linux程序通訊概觀
根據筆者前幾篇博文,我們可以知道程序是執行中的程式。所以,從程式的角度來看,程序的通訊實際上是對程式與程式之間交換資料和資源的管理。
基於以上的觀點,我們可以按照以下的方式來分析程序通訊。
首先,對於乙個程式個體來說,它有以下幾種通訊的情況:
① 程式和自己進行通訊
② 同機器的程式間進行通訊
③ 不同機器的程式之間進行通訊
實際上,上面所說的通訊情況基本涵蓋了linux
程序通訊的所有方式。分別對應
linux的:
① 多執行緒的通訊
② 程序間的通訊
③ 網路通訊
對於以上的三種通訊情況,linux
下能支援的通訊方式對應如下:
程序間通訊:判斷檔案是否存在實現程序互斥,使用檔案鎖(
檔案屬性
),使用訊號,
管道(又叫無名管道,有單向管道,也有雙向管道,僅父子程序及有親緣關係的程序間使用
),命名管道
(fifo,first-in first-out
,從尾部寫,從頭部讀
),訊息佇列,訊號量
(程序同步的整數值
),共享記憶體,
socket程式設計
執行緒同步:互斥鎖
Linux程序通訊
linux程序通訊 無名管道主要用於有親緣關係的程序通訊,其位於外存區域,但在檔案系統中不可見。在實際應用中,程序通訊往往發生在無關程序之間,此種情形下,若仍想使用管道,則必須使用有名管道,也稱命名管道或fifo檔案。這種型別的管道在檔案系統中可見,建立時需要指定具體路徑和檔名,管道建立之後,可用l...
Linux 程序通訊
程序通訊 通訊 communication 意味著在程序間傳送資料。也把程序間控制資訊的交換稱為低階通訊,而把程序間大批量資料的交換稱為高階通訊。程序通訊的型別 1 共享儲存器系統 記憶體 共享儲存器系統為了傳送大量資料,在儲存器中劃出一塊共享儲存區,諸程序可通過對共享儲存區進行讀資料或寫資料以實現...
Linux 程序通訊
linux下程序通訊的八種方法 管道 pipe 命名管道 fifo 共享記憶體 shared memory 訊息佇列 message queue 訊號量 semaphore 訊號 signal 套接字 socket linux命令中,執行乙個程式,後面加上 代表後台執行,也就是執行這個程式的同時,你...