進程通信管理基本概念
- system V IPC中是限制在單機中的通信
- 套接字(socket)的進程通信機制,屬于網絡進程通信技術
進程通信的分類
- 控制信息的傳遞:用于控制信息的執行速度和執行方式,通常只包含幾個字節的內容,屬于進程間的低級通信。
- 大批量數據傳送:執行程序中需要實現數據批量交換的一種手段,通常將進程間的大批量數據傳遞稱為高級通信。
進程間的通信
并發進程間的數據和信息交換稱為進程間通信(IPC),unix系統提供多種手段和技術進行進程間通信,例如基本通信,管道通信,共享內存通信。TCP/IP通過網絡環境,基于套接字進程通信。
進程通信的實現方式
主從式通信
通過主進程控制管理從進程。例如終端控制進程(主進程)和終端進程(從進程)。
會話式通信
雙方采用請求和響應請求的方式實現通信。分為使用者進程和服務者進程。典型的例子是用戶進程和磁盤管理進程之間的通信過程。
消息傳遞式通信
采用消息或者郵箱的方式進行進程間的通信。無論接收是否準備好,發送進程都可以進行消息發送,發送的信息是通過消息緩沖區或郵箱完成傳遞的。
信號通信方式
信號是操作系統中設立的一種運行通報機制,出現異常,會產生一種信號,信號可以傳遞給相關進程。進程接收到后會做出不同的反應。
UNIX的基本通信技術
鎖文件通信
通信進程雙方約定,在某個目錄中(TMP目錄),查找是否有一個雙方都可以訪問的已知文件存在,將這個文件視為鎖文件。
記錄鎖文件通信
通過文件記錄的鎖定來實現進程間的通信。
信號通信
略
管道通信
略
共享存儲區通信技術
共享存儲區的概念
利用內存中的一段共享存儲區進行通信,可以將共享區中的內容作為進程自己的虛存空間使用,構成通信機制。