操作系統(tǒng)進(jìn)程間基于消息隊列的通信試驗_第1頁
操作系統(tǒng)進(jìn)程間基于消息隊列的通信試驗_第2頁
操作系統(tǒng)進(jìn)程間基于消息隊列的通信試驗_第3頁
操作系統(tǒng)進(jìn)程間基于消息隊列的通信試驗_第4頁
操作系統(tǒng)進(jìn)程間基于消息隊列的通信試驗_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-可編輯-精品操作系統(tǒng)課程實驗報告實習(xí)題目進(jìn)程間基于消息隊列的通信指導(dǎo)教師學(xué)生姓名學(xué)號日期精品 II實驗?zāi)康模合到y(tǒng)了解 linux 系統(tǒng)的通信機(jī)構(gòu) IPC,掌握 IPC 中消息通信機(jī)制, 理解消息通信的方法及特征。實驗內(nèi)容:編寫一段程序,同時父進(jìn)程創(chuàng)建兩個子進(jìn)程 pl 和 p2 ;并使子進(jìn) 程 pl與子進(jìn)程 p2 通過消息隊列相互發(fā)送消息(5 12字節(jié))。實驗要求:(1)掌握系統(tǒng)調(diào)用 msgget()、msgsnd()、msgrev()、msgctl()的使用方法及其功能,理解消息通信原理;(2)系統(tǒng)理解 linux 的三種通信機(jī)制。一、消息機(jī)制提供四個系統(tǒng)調(diào)用:1.msgget 返回一個消息

2、描述字 msgqid ,msgqid 指定一個消息隊列 以便其他三個系統(tǒng)調(diào)用使用。2.msgs nd 和 msgrcv 分別表示發(fā)送和接收一消息。Msgs nd(msgqid ,msgp,msgsz,msgflg )中的 msgqid 是 msgget返回消息隊列描述符:msgp 是用戶緩沖區(qū)指針,msgsz 是消息正 文的長度,msgflg 是同步標(biāo)示,規(guī)定 msgqid 發(fā)送消息是發(fā)送完畢 后返回還是不等發(fā)送完立即返回。3.系統(tǒng)調(diào)用 msgrev 比 msgs nd 多一個參數(shù) msgtyp,它規(guī)定接收消息的類型。msgtyp=0 時,表示接收與 msgqid 相關(guān)聯(lián)的消息隊列上的第一個消

3、息;msgtyp0 時,表示接收 msgqid 相關(guān)聯(lián)消息隊 列上第一個消息,而 msgtypvO 時,則表示接收小于或等于 msgtyp 絕對值的最低類型的第一個消息。-可編輯-4.msgctl 用來設(shè)置和返回與 msgqid 相關(guān)聯(lián)的參數(shù)選擇項,以及用來 刪除實現(xiàn)工具C 語言實現(xiàn)環(huán)境Linux 系統(tǒng)實習(xí)內(nèi)容(功能?目標(biāo))實現(xiàn)的思想?方法和技術(shù)(含數(shù)據(jù)結(jié)構(gòu)?算法)描述符的選擇項。-可編輯-主要代碼#i nclude#i nclude#i nclude#in clude#in clude#in cludestri ng.h#defi ne MSGKEY 75struct msgformlong

4、 mtype;char mtext512;int msgqid;struct msgform msg1,msg2;in t p1,p2,pud1,pid2,*pi nt1,*pi nt2,i;while(p 仁 fork()=-1);msgs nd(msgqid,&msg1,sizeof(512),0);msqrcv(msgqid,&msg,512,pid,0);/消息的格式/消息的類型、正文長度/創(chuàng)建進(jìn)程 p1/建立消息隊列若存在返回消息描述字/將正文放入/指定消息的類型/往 msgqid 發(fā)送消息msg1/接收來自服務(wù)進(jìn)程的消息/輸出正文的內(nèi)容/創(chuàng)建進(jìn)程 p2/建立與顧客程

5、序相同的消息隊列/接收來自顧客進(jìn)程的消息/放在接收方if(p1=O)msgqid=magget (MSGKEY,0777);strcpy(msg1.mtext,Hello!);msg1=mtype=1;/服務(wù)者進(jìn)程接收到的信息注釋-可編輯-prin tf(clie nt:receivefrom-可編輯-精品v004.c1f&0L. 10540 writtenL201.4032 2PinCAIII口 w 七osgcc 004 _cC20141103272(?lacalhost os$ ”n out server;receive from client Hello? client:receiveFion sepuer bye bye!20L41L032?2eiiealhost osJ$思考:1 1、 消息通信與管道通信有何區(qū)別答:消息通信是用于所有進(jìn)程之間通信的,管道通信只能用于家族進(jìn)程之間的通信。2 2、 為什么 unixunix 中要增設(shè) IPCIPC 核心軟件包?答:IPCIPC 有三個組成部分:1 1) 消息用于進(jìn)程之間傳遞分類的格式化數(shù)據(jù)2 2) 共享存儲方式可使得不同進(jìn)程

溫馨提示

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

評論

0/150

提交評論