0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

進(jìn)程間的通訊方式

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-12-29 16:47 ? 次閱讀

1.管道模型通訊

管道模型與軟件生命周期模型——瀑布模型(Waterfall Model)很相似。所謂的瀑布模型,其實(shí)就是將整個(gè)軟件開發(fā)過程分成多個(gè)階段,往往是上一個(gè)階段完全做完,才將輸出結(jié)果交給下一個(gè)階段。從管道的這個(gè)名稱可以看出來,管道是一種單向傳輸數(shù)據(jù)的機(jī)制,它其實(shí)是一段緩存,里面的數(shù)據(jù)只能從一端寫入,從另一端讀出。如果想互相通信,我們需要?jiǎng)?chuàng)建兩個(gè)管道才行。

管道又可以分為:匿名管道和命名管道。

poYBAGOtUwKAQ0zfAAA46IVlUJE936.png

一方面,我們能夠看到,管道里面的內(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ù)。

poYBAGOtU0mAPppJAADVUcI8zGk703.png

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ù)的增刪查改互不影響。

poYBAGOtU4KAa7EAAAE7rjuHG64344.png

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)備好,出了事情照著做就可以了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18979

    瀏覽量

    302235
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    201

    瀏覽量

    13941
  • 通訊方式
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    2162
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python中多線程和多進(jìn)程的區(qū)別

    Python作為一種高級(jí)編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進(jìn)程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進(jìn)程的概念、區(qū)別以及如何使用線程池與
    的頭像 發(fā)表于 10-23 11:48 ?251次閱讀
    Python中多線程和多<b class='flag-5'>進(jìn)程</b>的區(qū)別

    PLC多種通訊方式匯總學(xué)習(xí)~

    PLC的通訊功能是其連接設(shè)備、控制系統(tǒng)和外部系統(tǒng)的重要組成部分。PLC支持多種通訊方式,本文將講述PLC常見的通訊方式及其優(yōu)缺點(diǎn),別再傻傻分
    的頭像 發(fā)表于 09-25 09:09 ?211次閱讀
    PLC多種<b class='flag-5'>通訊</b><b class='flag-5'>方式</b>匯總學(xué)習(xí)~

    三菱PLC有哪些通訊方式

    隨著工業(yè)自動(dòng)化技術(shù)的快速發(fā)展,PLC(可編程邏輯控制器)作為工業(yè)自動(dòng)化系統(tǒng)的核心控制設(shè)備,其通訊方式的多樣性和高效性對(duì)于整個(gè)系統(tǒng)的運(yùn)行效率起著至關(guān)重要的作用。三菱PLC作為市場上的知名品牌,憑借其
    的頭像 發(fā)表于 06-17 17:04 ?2284次閱讀

    上位機(jī)與下位機(jī)之間的通訊方式

    設(shè)備狀態(tài),執(zhí)行具體任務(wù)。兩者之間的通訊不僅涉及到數(shù)據(jù)的傳輸,還關(guān)系到命令的執(zhí)行和反饋的收集。本文將深入探討上位機(jī)與下位機(jī)之間的通訊方式,以期為相關(guān)領(lǐng)域的技術(shù)人員提供參考。
    的頭像 發(fā)表于 06-06 11:23 ?3344次閱讀

    逆變電源通訊方式大全,支持加密功能

    逆變器作為電站的核心部件,在不同應(yīng)用場景下的通訊方式應(yīng)該如何選擇和應(yīng)用呢?逆變器的通訊方式和應(yīng)用場景2.14G通訊通訊
    的頭像 發(fā)表于 05-08 11:47 ?640次閱讀
    逆變電源<b class='flag-5'>通訊</b><b class='flag-5'>方式</b>大全,支持加密功能

    進(jìn)程通信的消息隊(duì)列介紹

    消息隊(duì)列是一種非常常見的進(jìn)程通信方式
    的頭像 發(fā)表于 04-08 17:27 ?280次閱讀

    線程是什么的基本單位 進(jìn)程與線程的本質(zhì)區(qū)別

    的代碼、數(shù)據(jù)以及用于執(zhí)行這些代碼的上下文信息。一個(gè)進(jìn)程可以由一個(gè)或多個(gè)線程組成,從而并發(fā)執(zhí)行多個(gè)任務(wù)。 本質(zhì)區(qū)別: 資源擁有方式進(jìn)程是資源分配的基本單位,每個(gè)進(jìn)程擁有獨(dú)立的內(nèi)存空間、
    的頭像 發(fā)表于 02-02 16:30 ?825次閱讀

    淺談Linux的進(jìn)程

    進(jìn)程和程序的區(qū)別: 進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的 一、進(jìn)程的創(chuàng)建(fork()函數(shù)) int main(){ pid_t pid; pid=fork(); if(pid?????>0
    的頭像 發(fā)表于 01-28 15:54 ?235次閱讀
    淺談Linux的<b class='flag-5'>進(jìn)程</b>

    mcu線程和進(jìn)程的區(qū)別是什么

    MCU線程和進(jìn)程是嵌入式系統(tǒng)中常見的并行執(zhí)行的概念,它們之間有許多區(qū)別,包括線程與進(jìn)程的定義、資源管理、通信機(jī)制、執(zhí)行方式等等。下面將詳細(xì)介紹MCU線程和進(jìn)程的區(qū)別。 一、定義與概念
    的頭像 發(fā)表于 01-04 10:45 ?666次閱讀

    你還是分不清多進(jìn)程和多線程嗎?一文搞懂!

    中同時(shí)運(yùn)行多個(gè)獨(dú)立的進(jìn)程。每個(gè)進(jìn)程都有自己獨(dú)立的內(nèi)存空間,可以同時(shí)執(zhí)行不同的任務(wù)。多進(jìn)程之間通過進(jìn)程通信的
    的頭像 發(fā)表于 12-19 16:07 ?527次閱讀

    以太網(wǎng)通訊與485通訊性能對(duì)比

    以太網(wǎng)通訊與485通訊性能對(duì)比? 以太網(wǎng)通訊和485通訊是兩種常用的工業(yè)通訊方式,它們?cè)谛阅芊矫?/div>
    的頭像 發(fā)表于 12-11 17:07 ?2171次閱讀

    PLC跨網(wǎng)段通訊的四種方法

    如果兩臺(tái)PLC分別屬于不同網(wǎng)段,并且還有實(shí)時(shí)通訊的需求,那么這時(shí)可以考慮Profinet通訊方式,通過PN/PN Coupler網(wǎng)關(guān)來實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)交換功能。
    發(fā)表于 12-08 14:15 ?1668次閱讀
    PLC<b class='flag-5'>間</b>跨網(wǎng)段<b class='flag-5'>通訊</b>的四種方法

    如何查看系統(tǒng)是否有僵尸進(jìn)程

    進(jìn)程中的指令已經(jīng)執(zhí)行完成,但是進(jìn)程PCB結(jié)構(gòu)還沒有回收。   即子進(jìn)程先于父進(jìn)程退出后,子進(jìn)程的PCB需要其父
    的頭像 發(fā)表于 11-29 15:52 ?6772次閱讀
    如何查看系統(tǒng)是否有僵尸<b class='flag-5'>進(jìn)程</b>

    進(jìn)程響應(yīng)時(shí)間是指什么

    進(jìn)程響應(yīng)時(shí)間是指從發(fā)出請(qǐng)求到收到響應(yīng)的時(shí)間間隔,是衡量系統(tǒng)性能和用戶體驗(yàn)的重要指標(biāo)之一。在計(jì)算機(jī)系統(tǒng)中,進(jìn)程是指一個(gè)正在運(yùn)行的程序?qū)嵗.?dāng)用戶發(fā)出請(qǐng)求,系統(tǒng)會(huì)創(chuàng)建一個(gè)新的進(jìn)程來處理該請(qǐng)求。進(jìn)程
    的頭像 發(fā)表于 11-17 11:31 ?932次閱讀

    進(jìn)程進(jìn)入等待狀態(tài)有哪幾種方式

    進(jìn)程進(jìn)入等待狀態(tài)的方式有多種,下面將詳細(xì)介紹。 一、阻塞等待狀態(tài) 阻塞等待狀態(tài)是指進(jìn)程由于某些原因無法繼續(xù)執(zhí)行,需要等待特定事件的發(fā)生。以下是幾種常見的阻塞等待狀態(tài): I/O操作:當(dāng)進(jìn)程
    的頭像 發(fā)表于 11-17 11:19 ?2038次閱讀