試驗(yàn)三、linux的進(jìn)程間通信_(tái)第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論