1.管道模型通訊
管道模型與軟件生命周期模型——瀑布模型(Waterfall Model)很相似。所謂的瀑布模型,其實就是將整個軟件開發過程分成多個階段,往往是上一個階段完全做完,才將輸出結果交給下一個階段。從管道的這個名稱可以看出來,管道是一種單向傳輸數據的機制,它其實是一段緩存,里面的數據只能從一端寫入,從另一端讀出。如果想互相通信,我們需要創建兩個管道才行。
管道又可以分為:匿名管道和命名管道。
一方面,我們能夠看到,管道里面的內容被讀取出來,打印到了終端上;另一方面,echo 那個命令正常退出了,也即交接完畢,前一個項目組就完成了使命,可以解散了。管道通信,我們可以看出,瀑布模型的開發流程效率比較低下,因為團隊之間無法頻繁地溝通。而且,管道的使用模式,也不適合進程間頻繁的交換數據。
2.消息隊列
消息隊列可以理解為發郵件,每一封郵件都視為一個獨立的數據單元,也就是消息體,每個消息體都是固定大小的存儲塊,在字節流上不連續。
3.共享內存
每個進程都有自己獨立的虛擬內存空間,不同的進程的虛擬內存空間映射到不同的物理內存中去。這個進程訪問 A 地址和另一個進程訪問 A 地址,其實訪問的是不同的物理內存地址,對于數據的增刪查改互不影響。
4.信號
信號可以在任何時候發送給某一進程,進程需要為這個信號配置信號處理函數。當某個信號發生的時候,就默認執行這個函數就可以了。這就相當于咱們運維一個系統應急手冊,當遇到什么情況,做什么事情,都事先準備好,出了事情照著做就可以了。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5069文章
19021瀏覽量
303400 -
進程
+關注
關注
0文章
202瀏覽量
13947 -
通訊方式
+關注
關注
0文章
9瀏覽量
2163
發布評論請先 登錄
相關推薦
評論