版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、試驗(yàn)三、linux的進(jìn)程間通信試驗(yàn)?zāi)康模涸囼?yàn)?zāi)康模?、理解linux的進(jìn)程間通信機(jī)制2、掌握和使用消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信3、掌握和使用共享主存實(shí)現(xiàn)進(jìn)程間通信4、掌握何使用信號(hào)量實(shí)現(xiàn)進(jìn)程同步背景知識(shí)介紹背景知識(shí)介紹:linux繼承了unixv的進(jìn)程間通信機(jī)制,即消息隊(duì)列、信號(hào)量和共享主存。通常把消息、信號(hào)量和共享主存統(tǒng)稱為systemvipc對(duì)象或ipc資源。系統(tǒng)在進(jìn)程請(qǐng)求ipc對(duì)象時(shí)在內(nèi)核動(dòng)態(tài)創(chuàng)建一個(gè)ipc數(shù)據(jù)結(jié)構(gòu)并初始化,該結(jié)構(gòu)定義了
2、對(duì)該ipc對(duì)象訪問的許可權(quán),每個(gè)對(duì)象都具有同樣類型的接口函數(shù),這組函數(shù)為應(yīng)用程序提供3種服務(wù):通過信號(hào)量實(shí)現(xiàn)與其他進(jìn)程的同步通過消息隊(duì)列以異步方式為通信頻繁但數(shù)據(jù)量少的進(jìn)程間通信提供服務(wù)通過共享主存,為大數(shù)據(jù)量的進(jìn)程間通信提供服務(wù)1、共性描述1.1、公有的數(shù)據(jù)結(jié)構(gòu)每一類ipc資源都有一個(gè)ipc_ids結(jié)構(gòu)的全局變量用來描述同一類資源的共用數(shù)據(jù),三種ipc對(duì)象對(duì)應(yīng)的三個(gè)全局變量分別是se_dsmsgid_ds和sh_ds。ipc_ids結(jié)
3、構(gòu)定義如下:structipc_idsintsizeentries數(shù)組的大小intin_useentries數(shù)組已使用的元素個(gè)數(shù)intmax_idunsignedshtsequnsignedshtseq_maxstructsemaphesem控制對(duì)ipc_ids結(jié)構(gòu)的訪問spinlock_tary自旋鎖控制對(duì)數(shù)組entries的訪問structipc_identriesstructipc_idstructipc_permp每個(gè)ipc對(duì)象
4、都有一個(gè)ipc_perm數(shù)據(jù)結(jié)構(gòu),用于描述其屬性。structipc_perm擬地址空間,以及把共享主存區(qū)從進(jìn)程的虛擬地址空間剝離出去2、消息隊(duì)列Linux中的消息可以被描述成在內(nèi)核地址空間的一個(gè)內(nèi)部鏈表,每一個(gè)消息隊(duì)列由一個(gè)IPC的標(biāo)識(shí)號(hào)唯一的標(biāo)識(shí)。Linux為系統(tǒng)中所有的消息隊(duì)列維護(hù)一個(gè)msg_queue鏈表,該鏈表中的每個(gè)指針指向一個(gè)msgid_ds結(jié)構(gòu),該結(jié)構(gòu)完整描述對(duì)應(yīng)的一個(gè)消息隊(duì)列。2.1、消息隊(duì)列結(jié)構(gòu)(msgid_ds)s
5、tructmsqid_dsstructipc_permmsg_permstructmsgmsg_first隊(duì)列上第一條消息,即鏈表頭structmsgmsg_last隊(duì)列中的最后一條消息,即鏈表尾time_tmsg_stime發(fā)送給隊(duì)列的最后一條消息的時(shí)間time_tmsg_rtime從消息隊(duì)列接收到的最后一條消息的時(shí)間time_tmsg_ctime最后修改隊(duì)列的時(shí)間ushtmsg_cbytes隊(duì)列上所有消息總的字節(jié)數(shù)ushtmsg_q
6、num在當(dāng)前隊(duì)列上消息的個(gè)數(shù)ushtmsg_qbytes隊(duì)列最大的字節(jié)數(shù)ushtmsg_lspid發(fā)送最后一條消息的進(jìn)程的pidushtmsg_lrpid接收最后一條消息的進(jìn)程的pid2.2、消息結(jié)構(gòu)(msg)內(nèi)核把每一條消息存儲(chǔ)在以msg結(jié)構(gòu)為框架的隊(duì)列中structmsgstructmsgmsg_next隊(duì)列上的下一條消息longmsg_type消息類型msg_spot消息正文的地址shtmsg_ts消息正文的大小2.3、消息緩沖區(qū)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LINUX內(nèi)核進(jìn)程間通信的模型檢測(cè)研究.pdf
- ch4 linux系統(tǒng)程序設(shè)計(jì) 進(jìn)程控制和進(jìn)程間通信
- Linux進(jìn)程間的通信機(jī)理及其在PC集群中的應(yīng)用.pdf
- 基于郵政綜合服務(wù)平臺(tái)Linux進(jìn)程間通信分析和應(yīng)用.pdf
- 微內(nèi)核進(jìn)程間通信的研究
- Linux進(jìn)程間通信在江蘇郵政電子商務(wù)平臺(tái)中的應(yīng)用.pdf
- 第8章、進(jìn)程間通信
- 微內(nèi)核進(jìn)程間通信的研究.pdf
- 實(shí)驗(yàn)三-進(jìn)程通信
- 微內(nèi)核進(jìn)程間通信的優(yōu)化與實(shí)現(xiàn).pdf
- 基于Socket的進(jìn)程間通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- linux進(jìn)程操作命令
- 關(guān)于利用進(jìn)程間通信實(shí)現(xiàn)程序自我保護(hù)
- 基于Minix的進(jìn)程間通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- Android進(jìn)程間通信機(jī)制Binder的分析與對(duì)比研究.pdf
- 嵌入式實(shí)時(shí)操作系統(tǒng)的進(jìn)程間通信.pdf
- 基于RapidIO總線的進(jìn)程間通信系統(tǒng)的研究與實(shí)現(xiàn).pdf
- linux下查看進(jìn)程線程
- 分布式計(jì)算環(huán)境下進(jìn)程間通信策略的研究.pdf
- 分布式系統(tǒng)的進(jìn)程間通信技術(shù)的研究和開發(fā).pdf
評(píng)論
0/150
提交評(píng)論