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