www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]所謂進(jìn)程間通信就是在不同進(jìn)程之間傳播或交換信息,它是一組編程接口,讓程序員能夠協(xié)調(diào)不同的進(jìn)程,使之能在一個(gè)操作系統(tǒng)里同時(shí)運(yùn)行,并相互傳遞、交換信息;還可以讓一個(gè)程序能夠在同一時(shí)間里處理許多用戶的需求。

所謂進(jìn)程間通信就是在不同進(jìn)程之間傳播或交換信息,它是一組編程接口,讓程序員能夠協(xié)調(diào)不同的進(jìn)程,使之能在一個(gè)操作系統(tǒng)里同時(shí)運(yùn)行,并相互傳遞、交換信息;還可以讓一個(gè)程序能夠在同一時(shí)間里處理許多用戶的需求。那么Linux進(jìn)程間的通信方式有幾種?如果你還不清楚,請(qǐng)看下文:

第一種:管道通信

兩個(gè)進(jìn)程利用管道進(jìn)行通信時(shí),發(fā)送信息的進(jìn)程稱為寫進(jìn)程;接收信息的進(jìn)程稱為讀進(jìn)程。管道通信方式的中間介質(zhì)就是文件,通常稱這種文件為管道文件,它就像管道一樣將一個(gè)寫進(jìn)程和一個(gè)讀進(jìn)程連接在一起,實(shí)現(xiàn)兩個(gè)進(jìn)程之間的通信。寫進(jìn)程通過寫入端往管道文件中寫入信息;讀進(jìn)程通過讀出端從管道文件中讀取信息。兩個(gè)進(jìn)程協(xié)調(diào)不斷地進(jìn)行寫和讀,便會(huì)構(gòu)成雙方通過管道傳遞信息的流水線。

第二種:消息緩沖通信

多個(gè)獨(dú)立的進(jìn)程之間可以通過消息緩沖機(jī)制來(lái)相互通信。這種通信的實(shí)現(xiàn)是以消息緩沖區(qū)為中間介質(zhì),通信雙方的發(fā)送和接收操作均以消息為單位。在存儲(chǔ)器中,消息緩沖區(qū)被組織成隊(duì)列,通常稱之為消息隊(duì)列。消息隊(duì)列一旦創(chuàng)建后即可由多進(jìn)程共享,發(fā)送消息的進(jìn)程可以在任意時(shí)刻發(fā)送任意個(gè)消息到指定的消息隊(duì)列上,并檢查是否有接收進(jìn)程在等待它所發(fā)送的消息。若有則喚醒它,而接收消息的進(jìn)程可以在需要消息的時(shí)候到指定的消息隊(duì)列上獲取消息,如果消息還沒有到來(lái),則轉(zhuǎn)入睡眠等待狀態(tài)。

第三種:共享內(nèi)存通信

針對(duì)消息緩沖需要占用CPU進(jìn)行消息復(fù)制的缺點(diǎn),OS提供了一種進(jìn)程間直接進(jìn)行數(shù)據(jù)交換的通信方式。共享內(nèi)存,顧名思義這種通信方式允許多個(gè)進(jìn)程在外部通信協(xié)議或同步,互斥機(jī)制的支持下使用同一個(gè)內(nèi)存段進(jìn)行通信,它是一種最有效的數(shù)據(jù)通信方式,其特點(diǎn)是沒有中間環(huán)節(jié),直接將共享的內(nèi)存頁(yè)面通過附接映射到相互通信的進(jìn)程各自的虛擬地址空間中,從而使多個(gè)進(jìn)程可以直接訪問同一個(gè)物理內(nèi)存頁(yè)面。

進(jìn)程間通信的方式有很多,這里主要講到進(jìn)程間通信的六種方式,分別為:管道、FIFO、消息隊(duì)列、共享內(nèi)存、信號(hào)、信號(hào)量。

管道的特點(diǎn):

管道的原型:

代碼實(shí)現(xiàn):

FIFO,也叫做命名管道,它是一種文件類型。

FIFO的特點(diǎn):

FIFO的原型:

#include #include int mkfifo(const char *pathname, mode_t mode);

其中的 mode 參數(shù)與 open 函數(shù)中的 mode 相同。一旦創(chuàng)建了一個(gè) FIFO,就可以用一般的文件 I/O 函數(shù)操作它。

當(dāng) open 一個(gè) FIFO 時(shí),是否設(shè)置非阻塞標(biāo)志(O_NONBLOCK)的區(qū)別:

代碼實(shí)現(xiàn):

下列代碼有效解決了,當(dāng)管道存在時(shí),程序報(bào)錯(cuò)的問題,減少了無(wú)關(guān)錯(cuò)誤信息的打印。

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

1.管道(pipe)及有名管道(named pipe):

管道可用于具有親緣關(guān)系進(jìn)程間的通信,有名管道除了具有管道所具有的功能外,它還允許無(wú)親緣關(guān)系進(jìn)程間的通信。

2.信號(hào)(signal):

信號(hào)是在軟件層次上對(duì)中斷機(jī)制的一種模擬,它是比較復(fù)雜的通信方式,用于通知進(jìn)程有某事件發(fā)生,一個(gè)進(jìn)程收到一個(gè)信號(hào)與處理器收到一個(gè)中斷請(qǐng)求效果上可以說(shuō)是一致得。

3.消息隊(duì)列(message queue):

消息隊(duì)列是消息的鏈接表,它克服了上兩種通信方式中信號(hào)量有限的缺點(diǎn),具有寫權(quán)限得進(jìn)程可以按照一定得規(guī)則向消息隊(duì)列中添加新信息;對(duì)消息隊(duì)列有讀權(quán)限得進(jìn)程則可以從消息隊(duì)列中讀取信息。

消息緩沖通信技術(shù)是由Hansen首先提出的,其基本思想是:根據(jù)”生產(chǎn)者-消費(fèi)者”原理,利用內(nèi)存中公用消息緩沖區(qū)實(shí)現(xiàn)進(jìn)程之間的信息交換. 內(nèi)存中開辟了若干消息緩沖區(qū),用以存放消息.每當(dāng)一個(gè)進(jìn)程向另一個(gè)進(jìn)程發(fā)送消息時(shí),便申請(qǐng)一個(gè)消息緩沖區(qū),并把已準(zhǔn)備好的消息送到緩沖區(qū),然后把該消息緩沖區(qū)插入到接收進(jìn)程的消息隊(duì)列中,最后通知接收進(jìn)程.接收進(jìn)程收到發(fā)送里程發(fā)來(lái)的通知后,從本進(jìn)程的消息隊(duì)列中摘下一消息緩沖區(qū),取出所需的信息,然后把消息緩沖區(qū)不定期給系統(tǒng).系統(tǒng)負(fù)責(zé)管理公用消息緩沖區(qū)以及消息的傳遞. 一個(gè)進(jìn)程可以給若干個(gè)進(jìn)程發(fā)送消息,反之,一個(gè)進(jìn)程可以接收不同進(jìn)程發(fā)來(lái)的消息.顯然,進(jìn)程中關(guān)于消息隊(duì)列的操作是臨界區(qū).當(dāng)發(fā)送進(jìn)程正往接收進(jìn)程的消息隊(duì)列中添加一條消息時(shí),接收進(jìn)程不能同時(shí)從該消息隊(duì)列中到出消息:反之也一樣. 消息緩沖區(qū)通信機(jī)制包含以下列內(nèi)容: (1) 消息緩沖區(qū),這是一個(gè)由以下幾項(xiàng)組成的數(shù)據(jù)結(jié)構(gòu): 1、 消息長(zhǎng)度 2、 消息正文 3、 發(fā)送者 4、 消息隊(duì)列指針 (2)消息隊(duì)列首指針m-q,一般保存在PCB中。 (1) 互斥信號(hào)量m-mutex,初值為1,用于互斥訪問消息隊(duì)列,在PCB中設(shè)置。 (2) 同步信號(hào)量m-syn,初值為0,用于消息計(jì)數(shù),在PCB中設(shè)置。 (3) 發(fā)送消息原語(yǔ)send (4) 接收消息原語(yǔ)receive(a)

4.共享內(nèi)存(shared memory):

可以說(shuō)這是最有用的進(jìn)程間通信方式。它使得多個(gè)進(jìn)程可以訪問同一塊內(nèi)存空間,不同進(jìn)程可以及時(shí)看到對(duì)方進(jìn)程中對(duì)共享內(nèi)存中數(shù)據(jù)得更新。這種方式需要依靠某種同步操作,如互斥鎖和信號(hào)量等。

這種通信模式需要解決兩個(gè)問題:第一個(gè)問題是怎樣提供共享內(nèi)存;第二個(gè)是公共內(nèi)存的互斥關(guān)系則是程序開發(fā)人員的責(zé)任。

5.信號(hào)量(semaphore):

主要作為進(jìn)程之間及同一種進(jìn)程的不同線程之間得同步和互斥手段。

6.套接字(socket);

這是一種更為一般得進(jìn)程間通信機(jī)制,它可用于網(wǎng)絡(luò)中不同機(jī)器之間的進(jìn)程間通信,應(yīng)用非常廣泛。

http://blog.csdn.net/eroswang/archive/2007/09/04/1772350.aspx

linux下的進(jìn)程間通信-詳解

詳細(xì)的講述進(jìn)程間通信在這里絕對(duì)是不可能的事情,而且筆者很難有信心說(shuō)自己對(duì)這一部分內(nèi)容的認(rèn)識(shí)達(dá)到了什么樣的地步,所以在這一節(jié)的開頭首先向大家推薦著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文譯本《UNIX環(huán)境高級(jí)編程》已有機(jī)械工業(yè)出版社出版,原文精彩,譯文同樣地道,如果你的確對(duì)在Linux下編程有濃 厚的興趣,那么趕緊將這本書擺到你的書桌上或計(jì)算機(jī)旁邊來(lái)。說(shuō)這么多實(shí)在是難抑心中的景仰之情,言歸正傳,在這一節(jié)里,我們將介紹進(jìn)程間通信最最初步和最 最簡(jiǎn)單的一些知識(shí)和概念。    首先,進(jìn)程間通信至少可以通過傳送打開文件來(lái)實(shí)現(xiàn),不同的進(jìn)程通過一個(gè)或多個(gè)文件來(lái)傳遞信息,事實(shí)上,在很多應(yīng)用系統(tǒng)里,都使用了這種方法。但一般說(shuō)來(lái), 進(jìn)程間通信(IPC:InterProcess Communication)不包括這種似乎比較低級(jí)的通信方法。Unix系統(tǒng)中實(shí)現(xiàn)進(jìn)程間通信的方法很多,而且不幸的是,極少方法能在所有的Unix系 統(tǒng)中進(jìn)行移植(唯一一種是半雙工的管道,這也是最原始的一種通信方式)。而Linux作為一種新興的操作系統(tǒng),幾乎支持所有的Unix下常用的進(jìn)程間通信 方法:管道、消息隊(duì)列、共享內(nèi)存、信號(hào)量、套接口等等。下面我們將逐一介紹。

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉