linux程序間通訊綜述
linux程序間通訊主要分為以下4個領域
(1)訊息傳遞(管道,fifo,訊息佇列)
(2)同步(互斥鎖,條件變數,讀寫鎖,訊號量)
(3)共享記憶體區(匿名共享記憶體區,有名共享記憶體區)
(4)過程呼叫(solaris門,sun rpc)
linux程序間的資訊共享可以分為
(1) 基於檔案系統的共享
(2) 基於核心的共享
(3) 基於共享記憶體區的共享
ipc物件的持續性
(1)隨程序間持續的ipc物件一直存在到開啟著該物件的最後乙個程序關閉該物件的最後乙個程序關閉該物件為止。
(2)隨核心持續的ipc物件一直存在到核心重新自舉或顯式刪除該物件為止。
(3)隨檔案系統持續的ipc物件一直存在到顯示刪除該物件為止。即使系統自舉了,該物件還是存在的。
ipc型別 持續性
管道 隨程序
fifo 隨程序
posix互斥鎖 隨程序
posix條件變數 隨程序
posix讀寫鎖 隨程序
fcntl記錄上鎖 隨程序
posix訊息佇列 隨核心
posix有名訊號量 隨核心
posix基於記憶體的訊號量 隨程序
posix共享記憶體區 隨核心
system v訊息佇列 隨核心
system v訊號量 隨核心
system v共享記憶體區 隨核心
tcp套接字 隨程序
udp套接字 隨程序
unix域套接字 隨程序
名字空間:
當兩個或多個無親緣關係的程序使用某種型別的ipc物件來彼此交換資訊時,該ipc物件必須有乙個某種形式的名字或者識別符號,這樣其中乙個程序(往往是伺服器)可以建立該ipc物件,其餘程序則可以指定同乙個ipc物件。
ipc型別 用於開啟或建立ipc的名字空間 ipc開啟後的標識
管道 沒有名字 描述符
fifo 路徑名 描述符
posix互斥鎖 沒有名字 pthread_mutex_t指標
posix條件變數 沒有名字 pthread_cond_t指標
posix讀寫鎖 沒有名字 pthread_rwlock_t指標
fcntl記錄上鎖 路徑名 描述符
posix訊息佇列 posix ipc名字 mqd_t值
posix有名訊號量 posix ipc名字 sem_t指標
posix基於記憶體的訊號量 沒有名字 sem_t指標
posix共享記憶體區 posix ipc名字 描述符
system v訊息佇列 key_t鍵 system v ipc識別符號
system v 訊號量 key_t鍵 system v ipc識別符號
system v共享記憶體區 key_t鍵 system v ipc 識別符號
門 路徑名 描述符
sun rpc 程式/版本 rpc控制代碼
tcp套接字 ip位址與tcp 埠 描述符
udp套接字 ip位址與udp埠 描述符
unix域套接字 路徑名 描述符
linux 程序間通訊綜述
linux程序間通訊主要分為以下4個領域 1 訊息傳遞 管道,fifo,訊息佇列 2 同步 互斥鎖,條件變數,讀寫鎖,訊號量 3 共享記憶體區 匿名共享記憶體區,有名共享記憶體區 4 過程呼叫 solaris門,sun rpc linux程序間的資訊共享可以分為 1 基於檔案系統的共享 2 基於核心...
程序間通訊方式 綜述
linux程序間一共有六種通訊方式 1.管道 無名管道 pipe 和有名管道 fifo 2.訊號 signal 3.訊號量 semaphore 4.訊息佇列 messagequeue 5.共享記憶體 shared memory 6.套接字 socket 1.管道 管道分為無名管道 pipe 和有名管...
Linux程序間通訊
程序間通訊 ipc interprocess communication 基本機制 訊號 管道及命名管道 訊息佇列 共享主存 訊號量 套接字。訊號 全稱軟中斷訊號,是在軟體層次上對中斷機制的一種模擬,它也是程序間通訊機制中唯一的非同步通訊機制。linux訊號處理函式可分為訊號安裝函式 訊號傳送函式和...