試驗三、linux的進程間通信_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、試驗三、linux的進程間通信試驗目的:試驗目的:1、理解linux的進程間通信機制2、掌握和使用消息隊列實現(xiàn)進程間通信3、掌握和使用共享主存實現(xiàn)進程間通信4、掌握何使用信號量實現(xiàn)進程同步背景知識介紹背景知識介紹:linux繼承了unixv的進程間通信機制,即消息隊列、信號量和共享主存。通常把消息、信號量和共享主存統(tǒng)稱為systemvipc對象或ipc資源。系統(tǒng)在進程請求ipc對象時在內(nèi)核動態(tài)創(chuàng)建一個ipc數(shù)據(jù)結構并初始化,該結構定義了

2、對該ipc對象訪問的許可權,每個對象都具有同樣類型的接口函數(shù),這組函數(shù)為應用程序提供3種服務:通過信號量實現(xiàn)與其他進程的同步通過消息隊列以異步方式為通信頻繁但數(shù)據(jù)量少的進程間通信提供服務通過共享主存,為大數(shù)據(jù)量的進程間通信提供服務1、共性描述1.1、公有的數(shù)據(jù)結構每一類ipc資源都有一個ipc_ids結構的全局變量用來描述同一類資源的共用數(shù)據(jù),三種ipc對象對應的三個全局變量分別是se_dsmsgid_ds和sh_ds。ipc_ids結

3、構定義如下:structipc_idsintsizeentries數(shù)組的大小intin_useentries數(shù)組已使用的元素個數(shù)intmax_idunsignedshtsequnsignedshtseq_maxstructsemaphesem控制對ipc_ids結構的訪問spinlock_tary自旋鎖控制對數(shù)組entries的訪問structipc_identriesstructipc_idstructipc_permp每個ipc對象

4、都有一個ipc_perm數(shù)據(jù)結構,用于描述其屬性。structipc_perm擬地址空間,以及把共享主存區(qū)從進程的虛擬地址空間剝離出去2、消息隊列Linux中的消息可以被描述成在內(nèi)核地址空間的一個內(nèi)部鏈表,每一個消息隊列由一個IPC的標識號唯一的標識。Linux為系統(tǒng)中所有的消息隊列維護一個msg_queue鏈表,該鏈表中的每個指針指向一個msgid_ds結構,該結構完整描述對應的一個消息隊列。2.1、消息隊列結構(msgid_ds)s

5、tructmsqid_dsstructipc_permmsg_permstructmsgmsg_first隊列上第一條消息,即鏈表頭structmsgmsg_last隊列中的最后一條消息,即鏈表尾time_tmsg_stime發(fā)送給隊列的最后一條消息的時間time_tmsg_rtime從消息隊列接收到的最后一條消息的時間time_tmsg_ctime最后修改隊列的時間ushtmsg_cbytes隊列上所有消息總的字節(jié)數(shù)ushtmsg_q

6、num在當前隊列上消息的個數(shù)ushtmsg_qbytes隊列最大的字節(jié)數(shù)ushtmsg_lspid發(fā)送最后一條消息的進程的pidushtmsg_lrpid接收最后一條消息的進程的pid2.2、消息結構(msg)內(nèi)核把每一條消息存儲在以msg結構為框架的隊列中structmsgstructmsgmsg_next隊列上的下一條消息longmsg_type消息類型msg_spot消息正文的地址shtmsg_ts消息正文的大小2.3、消息緩沖區(qū)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論