Unix進程間的信息共享有多種方式:注意下圖中內核的位置
線程
多數形式的IPC并沒有在系統重新自舉后繼續存在的打算,因為進程不可能跨越重新自舉繼續存活。另外,要求它具備隨文件系統的持續性可能會降低其性能,而IPC的一個基本設計目標就是高性能。
對于一種給定的IPC類型,其可能的名字的集合稱為它的名字空間。名字空間非常重要,對于除普通管道以外的所有形式的IPC來說,名字是客戶與服務器彼此連接以交換消息的手段。
下圖匯總了不同形式的IPC所用的命名約定
文件服務器:客服-服務器應用程序,客戶向服務器發送一個路徑名,服務器把該文件的內容返回給客戶
生產者-消費者:一個或多個線程或進程(生產者)把數據放到一個共享緩沖區中,另有一個或多個線程或進程(消費者)對該共享緩沖區中的數據進行操作。
- 消息傳遞:管道、FIFO、消息隊列
- 同步:互斥鎖、條件變量、讀寫鎖、信號量
- 共享內存區:匿名共享內存區、有名共享內存區
- 過程調用:Solaris門、Sun RPC
新聞熱點
疑難解答