程序通訊有如下一些目的:
a、資料傳輸:乙個程序需要將它的資料傳送給另乙個程序,傳送的資料量在乙個位元組到幾m位元組之間
b、共享資料:多個程序想要操作共享資料,乙個程序對共享資料的修改,別的程序應該立刻看到。
c、通知事件:乙個程序需要向另乙個或一組程序傳送訊息,通知它(它們)發生了某種事件(如程序終止時要通知父程序)。
d、資源共享:多個程序之間共享同樣的資源。為了作到這一點,需要核心提供鎖和同步機制。
e、程序控制:有些程序希望完全控制另乙個程序的執行(如debug程序),此時控制程序希望能夠攔截另乙個程序的所有陷入和異常,並能夠及時知道它的狀態改變。
linux 程序間通訊(ipc)以下以幾部分發展而來:
早期unix程序間通訊、基於system v程序間通訊、基於socket程序間通訊和posix程序間通訊。
unix程序間通訊方式包括:管道、fifo、訊號。
system v程序間通訊方式包括:system v訊息佇列、system v訊號燈、system v共享記憶體、
posix程序間通訊包括:posix訊息佇列、posix訊號燈、posix共享記憶體。
現在linux使用的程序間通訊方式:
(1)管道(pipe)和有名管道(fifo)
(2)訊號(signal)
(3)訊息佇列
(4)共享記憶體
(5)訊號量
(6)套接字(socket)
Linux程序間通訊
程序間通訊 ipc interprocess communication 基本機制 訊號 管道及命名管道 訊息佇列 共享主存 訊號量 套接字。訊號 全稱軟中斷訊號,是在軟體層次上對中斷機制的一種模擬,它也是程序間通訊機制中唯一的非同步通訊機制。linux訊號處理函式可分為訊號安裝函式 訊號傳送函式和...
Linux程序間通訊
謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...
Linux程序間通訊
謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...