進(jìn)程間通信

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

進(jìn)程間通信就是在不同進(jìn)程之間傳播或交換信息,那么不同進(jìn)程之間存在著什么雙方都可以訪問的介質(zhì)呢?進(jìn)程的用戶空間是互相獨(dú)立的,一般而言是不能互相訪問的,唯一的例外是共享內(nèi)存區(qū)。另外,系統(tǒng)空間是“公共場所”,各進(jìn)程均可以訪問,所以內(nèi)核也可以提供這樣的條件。此外,還有雙方都可以訪問的外設(shè)。在這個(gè)意義上,兩個(gè)進(jìn)程當(dāng)然也可以通過磁盤上的普通文件交換信息,或者通過“注冊(cè)表”或其它數(shù)據(jù)庫中的某些表項(xiàng)和記錄交換信息。廣義上這也是進(jìn)程間通信的手段,但是一般都不把這算作“進(jìn)程間通信”。

進(jìn)程間通信就是在不同進(jìn)程之間傳播或交換信息,那么不同進(jìn)程之間存在著什么雙方都可以訪問的介質(zhì)呢?進(jìn)程的用戶空間是互相獨(dú)立的,一般而言是不能互相訪問的,唯一的例外是共享內(nèi)存區(qū)。另外,系統(tǒng)空間是“公共場所”,各進(jìn)程均可以訪問,所以內(nèi)核也可以提供這樣的條件。此外,還有雙方都可以訪問的外設(shè)。在這個(gè)意義上,兩個(gè)進(jìn)程當(dāng)然也可以通過磁盤上的普通文件交換信息,或者通過“注冊(cè)表”或其它數(shù)據(jù)庫中的某些表項(xiàng)和記錄交換信息。廣義上這也是進(jìn)程間通信的手段,但是一般都不把這算作“進(jìn)程間通信”。收起

查看更多
  • 《嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程》(第2版)
    華清遠(yuǎn)見為您帶來經(jīng)典教程:嵌入式Linux應(yīng)用程序開發(fā)
  • 進(jìn)程間通信之:實(shí)驗(yàn)內(nèi)容
    通過編寫有名管道多路通信實(shí)驗(yàn),讀者可進(jìn)一步掌握管道的創(chuàng)建、讀寫等操作,同時(shí),也復(fù)習(xí)使用select()函數(shù)實(shí)現(xiàn)管道的通信。
  • 進(jìn)程間通信之:消息隊(duì)列
    顧名思義,消息隊(duì)列就是一些消息的列表。用戶可以從消息隊(duì)列中添加消息和讀取消息等。從這點(diǎn)上看,消息隊(duì)列具有一定的FIFO特性,但是它可以實(shí)現(xiàn)消息的隨機(jī)查詢,比FIFO具有更大的優(yōu)勢。同時(shí),這些消息又是存在于內(nèi)核中的,由“隊(duì)列ID”來標(biāo)識(shí)。
  • 進(jìn)程間通信之: 共享內(nèi)存
    可以說,共享內(nèi)存是一種最為高效的進(jìn)程間通信方式。因?yàn)檫M(jìn)程可以直接讀寫內(nèi)存,不需要任何數(shù)據(jù)的復(fù)制。為了在多個(gè)進(jìn)程間交換信息,內(nèi)核專門留出了一塊內(nèi)存區(qū)。這段內(nèi)存區(qū)可以由需要訪問的進(jìn)程將其映射到自己的私有地址空間。因此,進(jìn)程就可以直接讀寫這一內(nèi)存區(qū)而不需要進(jìn)行數(shù)據(jù)的復(fù)制,從而大大提高了效率。
  • 進(jìn)程間的通信方式三種
    分別是消息隊(duì)列通信、信號(hào)量通信和共享內(nèi)存通信:消息隊(duì)列是在兩個(gè)不相關(guān)的進(jìn)程之間傳遞數(shù)據(jù)的一種簡單高效的方式,獨(dú)立于發(fā)送進(jìn)程和接受進(jìn)程而存在;信號(hào)量是一種提供不同進(jìn)程或者一個(gè)給定的不同線程之間同步的手段;共享內(nèi)存詩指在多個(gè)處理器的計(jì)算機(jī)中,可以被不同的中央處理器訪問的大容量的內(nèi)存。