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