1.管道模型通訊
管道模型與軟件生命周期模型——瀑布模型(Waterfall Model)很相似。所謂的瀑布模型,其實就是將整個軟件開發過程分成多個階段,往往是上一個階段完全做完,才將輸出結果交給下一個階段。從管道的這個名稱可以看出來,管道是一種單向傳輸數據的機制,它其實是一段緩存,里面的數據只能從一端寫入,從另一端讀出。如果想互相通信,我們需要創建兩個管道才行。
管道又可以分為:匿名管道和命名管道。
一方面,我們能夠看到,管道里面的內容被讀取出來,打印到了終端上;另一方面,echo 那個命令正常退出了,也即交接完畢,前一個項目組就完成了使命,可以解散了。管道通信,我們可以看出,瀑布模型的開發流程效率比較低下,因為團隊之間無法頻繁地溝通。而且,管道的使用模式,也不適合進程間頻繁的交換數據。
2.消息隊列
消息隊列可以理解為發郵件,每一封郵件都視為一個獨立的數據單元,也就是消息體,每個消息體都是固定大小的存儲塊,在字節流上不連續。
3.共享內存
每個進程都有自己獨立的虛擬內存空間,不同的進程的虛擬內存空間映射到不同的物理內存中去。這個進程訪問 A 地址和另一個進程訪問 A 地址,其實訪問的是不同的物理內存地址,對于數據的增刪查改互不影響。
4.信號
信號可以在任何時候發送給某一進程,進程需要為這個信號配置信號處理函數。當某個信號發生的時候,就默認執行這個函數就可以了。這就相當于咱們運維一個系統應急手冊,當遇到什么情況,做什么事情,都事先準備好,出了事情照著做就可以了。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5087文章
19145瀏覽量
306116 -
進程
+關注
關注
0文章
203瀏覽量
13965 -
通訊方式
+關注
關注
0文章
9瀏覽量
2174
發布評論請先 登錄
相關推薦
深入解析Linux程序與進程
![深入解析Linux程序與<b class='flag-5'>進程</b>](https://file1.elecfans.com/web3/M00/02/C5/wKgZPGdiO2SAYKPeAAAi38nFzDs009.png)
機智云智能家居網關方案的組網方式與通訊協議解析
![機智云智能家居網關方案的組網<b class='flag-5'>方式</b>與<b class='flag-5'>通訊</b>協議解析](https://file.elecfans.com/web2/M00/40/03/pYYBAGJrSWqAb-nSAAAXmKtCFeo833.jpg)
一文搞懂Linux進程的睡眠和喚醒
Python中多線程和多進程的區別
![Python中多線程和多<b class='flag-5'>進程</b>的區別](https://file1.elecfans.com/web2/M00/0A/EF/wKgaomcYcmaAS08XAAAsH7JtzO0544.png)
三菱PLC有哪些通訊方式
鴻蒙開發:【進程模型】
![鴻蒙開發:【<b class='flag-5'>進程</b>模型】](https://file1.elecfans.com/web2/M00/ED/FA/wKgaomZplvCAGCyTAAII3Jd9LPk312.jpg)
歐姆龍plc之間怎么通訊
上位機與下位機之間的通訊方式
線程是什么的基本單位 進程與線程的本質區別
淺談Linux的進程
![淺談Linux的<b class='flag-5'>進程</b>](https://file1.elecfans.com/web2/M00/BE/B6/wKgZomW2B_yALAYpAApYeMdROq0851.png)
評論