對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc

對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc

ID:29013459

大?。?7.00 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2018-12-16

對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc_第1頁(yè)
對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc_第2頁(yè)
對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc_第3頁(yè)
對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc_第4頁(yè)
對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc_第5頁(yè)
資源描述:

《對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、對(duì)話UNIX:通過共享內(nèi)存進(jìn)行進(jìn)程間通信從表面上看,UNIX?應(yīng)用程序單獨(dú)控制底層主機(jī)。它隨時(shí)可以訪問處理器,它的內(nèi)存是神圣不可侵犯的,連接它的設(shè)備只為它服務(wù)。但是表面現(xiàn)象會(huì)騙人,這樣有如君主一般的絕對(duì)地位只是幻想而已。UNIX系統(tǒng)同時(shí)運(yùn)行大量應(yīng)用程序,有限的物理資源要在它們之間共享。處理器能力被劃分為時(shí)間片,應(yīng)用程序映像經(jīng)常被換入和換出真實(shí)內(nèi)存,設(shè)備訪問由需求驅(qū)動(dòng),還受到訪問權(quán)限的限制。盡管您的shell提示符不斷閃爍,但是UNIX系統(tǒng)并非只是等著您發(fā)出命令,在幕后有許多活動(dòng)正在進(jìn)行。常用縮略詞·API:應(yīng)用程序編程接口·IPv4:Internet協(xié)議第4版·IPv6:Inte

2、rnet協(xié)議第6版·POSIX:UNIX的可移植操作系統(tǒng)接口盡管涉及一些復(fù)雜的機(jī)制,但是大多數(shù)應(yīng)用程序不會(huì)注意到資源實(shí)際上是共享的,它們似乎是獨(dú)享資源。但是,可以編寫相互交互的應(yīng)用程序。例如,一個(gè)應(yīng)用程序收集或生成數(shù)據(jù),而另一個(gè)應(yīng)用程序同時(shí)監(jiān)視進(jìn)度并分析信息。另一個(gè)例子是即時(shí)交換消息的聊天系統(tǒng),其中有兩個(gè)對(duì)等的應(yīng)用程序相互收發(fā)數(shù)據(jù)。SecureShell(ssh)也是這樣,它可以在兩個(gè)完全不同的主機(jī)之間進(jìn)行協(xié)作。在這些情況下,代碼都要連接另一段獨(dú)立的代碼以交換信息,這常常需要使用某種協(xié)議協(xié)商和控制交換過程。UNIX為實(shí)現(xiàn)這樣的進(jìn)程間通信提供了多種技術(shù)。一些技術(shù)提供同一主機(jī)上的進(jìn)程

3、間通信,其他技術(shù)可以實(shí)現(xiàn)主機(jī)到主機(jī)的信息交換。另外,各種技術(shù)的速度不同,所以必須選擇最合適自己需求的技術(shù)。還必須進(jìn)行協(xié)調(diào)(實(shí)施時(shí)間控制和排他控制)。例如,如果一個(gè)應(yīng)用程序產(chǎn)生數(shù)據(jù),另一個(gè)應(yīng)用程序消費(fèi)數(shù)據(jù),那么當(dāng)讀完共享池時(shí)消費(fèi)者必須停下來等待生產(chǎn)者。另一方面,如果消費(fèi)者無(wú)法足夠快地讀取池,生產(chǎn)者必須慢下來或暫停。表1總結(jié)在典型的UNIX系統(tǒng)上可用的進(jìn)程間通信形式。表1.UNIX中的進(jìn)程間通信名稱說明范圍用途文件在典型的UNIX文件中讀寫數(shù)據(jù)。任意數(shù)量的進(jìn)程都可以互操作。本地共享大數(shù)據(jù)集管道使用專用的文件描述符在兩個(gè)進(jìn)程之間傳輸數(shù)據(jù)。通信只在父進(jìn)程和子進(jìn)程之間進(jìn)行。本地簡(jiǎn)單的數(shù)據(jù)共

4、享,比如生產(chǎn)者和消費(fèi)者命名管道通過專用的文件描述符在進(jìn)程之間交換數(shù)據(jù)。通信可以在同一主機(jī)上的任意兩個(gè)對(duì)等進(jìn)程之間進(jìn)行。本地生產(chǎn)者和消費(fèi)者或命令-控制,比如MySQL和它的命令行查詢工具信號(hào)通過中斷通知應(yīng)用程序某一情況。本地?zé)o法在信號(hào)中傳輸數(shù)據(jù),所以信號(hào)主要用于進(jìn)程管理共享內(nèi)存通過在同一內(nèi)存段中讀寫數(shù)據(jù)共享信息。本地任何類型的協(xié)作,尤其適合需要安全性的情況FTP、ssh和ApacheWebServer套接字完成特殊的設(shè)置過程之后,使用一般的輸入/輸出操作傳輸數(shù)據(jù)。本地或遠(yuǎn)程等網(wǎng)絡(luò)服務(wù)正如前面提到的,每種技術(shù)滿足不同的需求。假設(shè)多個(gè)進(jìn)程之間的協(xié)作的復(fù)雜性大體相當(dāng),每種方法的優(yōu)點(diǎn)和缺點(diǎn)

5、如下:·通過一般的UNIX文件共享數(shù)據(jù)很簡(jiǎn)單,因?yàn)樗褂么蠹沂煜さ奈募僮鳌5?,通過文件系統(tǒng)共享數(shù)據(jù)很慢,因?yàn)榇疟P輸入和輸出操作的效率遠(yuǎn)遠(yuǎn)比不上內(nèi)存。另外,只通過文件讀寫數(shù)據(jù)很難協(xié)調(diào)。最后,在文件中保存敏感數(shù)據(jù)是不安全的,因?yàn)楦脩艉蛽碛刑貦?quán)的其他用戶可以訪問這些信息。對(duì)于只讀或只寫的數(shù)據(jù),適合使用文件?!す艿篮兔艿酪埠芎?jiǎn)單。它們?cè)谶B接的兩端使用兩個(gè)標(biāo)準(zhǔn)的文件描述符—一個(gè)只執(zhí)行讀操作,另一個(gè)只執(zhí)行寫操作。但是,管道只能在父進(jìn)程和子進(jìn)程之間使用,不能在任意兩個(gè)進(jìn)程之間使用。命名管道克服了這個(gè)缺點(diǎn),是在同一系統(tǒng)上交換數(shù)據(jù)的好方法。但是,管道和命名管道都不提供隨機(jī)訪問,因?yàn)樗鼈兌?/p>

6、作為先入先出(FIFO)設(shè)備?!ば盘?hào)無(wú)法在進(jìn)程之間傳輸數(shù)據(jù)。一般情況下,信號(hào)應(yīng)該只用于在進(jìn)程之間通知異常情況?!す蚕韮?nèi)存適合比較大的數(shù)據(jù)集,因?yàn)樗褂脙?nèi)存,支持快速的隨機(jī)訪問。共享內(nèi)存的實(shí)現(xiàn)有點(diǎn)兒復(fù)雜,盡管如此,對(duì)于多個(gè)進(jìn)程之間的主機(jī)內(nèi)協(xié)作,共享內(nèi)存是不錯(cuò)的方法?!ぬ捉幼值墓δ芘c命名管道很相似,但是可以跨主機(jī)。本地套接字(也稱為UNIX套接字)只能進(jìn)行本地(同一主機(jī)上的)連接。Inet和Inet6套接字分別使用IPv4和IPv6協(xié)議,它們接受遠(yuǎn)程連接(也可以通過本地機(jī)器的Internet尋址機(jī)制接受本地連接)。網(wǎng)絡(luò)應(yīng)用程序顯然應(yīng)該選擇套接字,比如分布式處理或web瀏覽器。所需的代

7、碼比命名管道復(fù)雜一點(diǎn)兒,但是模式是固定的,在任何UNIX網(wǎng)絡(luò)編程書中都有介紹。現(xiàn)在不考慮主機(jī)間應(yīng)用程序通信,看看如何通過共享內(nèi)存在同一主機(jī)上進(jìn)行進(jìn)程間通信。回頁(yè)首共享內(nèi)存的工作方式顧名思義,共享內(nèi)存讓一段內(nèi)存可供多個(gè)進(jìn)程訪問。用特殊的系統(tǒng)調(diào)用(即對(duì)UNIX內(nèi)核的請(qǐng)求)分配和釋放內(nèi)存并設(shè)置權(quán)限;通過一般的讀寫操作讀寫內(nèi)存段中的數(shù)據(jù)。共享內(nèi)存并不是從某一進(jìn)程擁有的內(nèi)存中劃分出來的;進(jìn)程的內(nèi)存總是私有的。共享內(nèi)存是從系統(tǒng)的空閑內(nèi)存池中分配的,希望訪問它的每個(gè)進(jìn)程連接它。這個(gè)連接過程稱為

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。