操作系統(tǒng)實驗5進程間基于共享存儲區(qū)的通信(共5頁)_第1頁
操作系統(tǒng)實驗5進程間基于共享存儲區(qū)的通信(共5頁)_第2頁
操作系統(tǒng)實驗5進程間基于共享存儲區(qū)的通信(共5頁)_第3頁
操作系統(tǒng)實驗5進程間基于共享存儲區(qū)的通信(共5頁)_第4頁
操作系統(tǒng)實驗5進程間基于共享存儲區(qū)的通信(共5頁)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上內(nèi)蒙古師大計算機與信息工程學(xué)院操作系統(tǒng)課程實驗報告 實習(xí)題目計算機操作系統(tǒng)實驗進程間基于共享存儲區(qū)的通信指導(dǎo)教師玉柱職 稱副教授學(xué)生姓名學(xué) 號日 期2016/12/21實現(xiàn)工具PC機實現(xiàn)環(huán)境Linux系統(tǒng)實習(xí)內(nèi)容(功能、目標)實驗?zāi)康南到y(tǒng)了解linux系統(tǒng)的通信機構(gòu)IPC ,掌握IPC中共享存儲區(qū)通信機制,理解共享存儲區(qū)通信的方法及特征。實驗內(nèi)容編寫一段程序,同時父進程創(chuàng)建兩個子進程p1和p2;并使子進程p1與子進程p2通過共享存儲區(qū)相互發(fā)送數(shù)據(jù)(字節(jié))。實現(xiàn)的思想、方法和技術(shù)(含數(shù)據(jù)結(jié)構(gòu)、算法)編寫一段程序,同時父進程創(chuàng)建兩個子進程p1和p2;并使子進程p1與子進程

2、p2通過通過共享存儲區(qū)相互發(fā)送數(shù)據(jù)(512)。linux系統(tǒng)的通信機構(gòu)IPC中消息通信機制提供四個操縱共享存儲區(qū)的系統(tǒng)調(diào)用。shmget()的主要功能是建立新的共享存儲區(qū)或返回一個已存在的共享存儲區(qū)描述字,shmat(shmid,addr,flag)的主要功能是將物理共享區(qū)附接到進程虛擬地址空間,其中shmid是shmget()共享存儲區(qū)描述字,addr等于0有系統(tǒng)自動選址進行附接,flag置0既能讀又能寫。shmdt()的功能是斷接一個共享存儲區(qū),shmctl()的主要功能是查詢及設(shè)置一個共享存儲區(qū)狀態(tài)和有關(guān)參數(shù)。使用以上的系統(tǒng)調(diào)用不僅減少了數(shù)據(jù)流動帶來的硬件開銷,還是批次的通信不僅僅局限于

3、接受和發(fā)送數(shù)據(jù),還可以操作彼此的某些虛擬存儲區(qū)。主要代碼注釋#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#include<stdio.h>#include<stdlib.h>#define SHMKEY 69#define K 50 int shmid;main() int i,*pint,p1,p2; char *addr; while(p1=fork()=-1); if(p1=0) for(i=0;i<20;i+) shmid=shmget(SHMKE

4、Y,K,0777|IPC_CREAT); addr=shmat(shmid,0,0); printf("naddr 0x%xn",addr); pint=(int*)addr; for(i=0;i<20;i+) *pint+=i; pint=(int*)addr; *pint=20; while(*pint=20); for(i=0;i<=26;i+) printf("%c ",*pint+); shmctl(shmid,IPC_RMID,0); exit(0); else while(p2=fork()=-1); if(p2=0) shmi

5、d=shmget(SHMKEY,K,0777); addr=shmat(shmid,0,0); pint=(int*)addr; while(*pint=0); for(i=0;i<20;i+) printf("%d ",*pint+); pint=(int *)addr; for(i=91;i>=64;i-) *pint+=i; pint=(int *)addr; *pint=0; shmctl(shmid,IPC_RMID,0); exit(0); 共享存儲區(qū)所用的頭文件全局變量shmid外部函數(shù)聲明建立進程1建立256字節(jié)共享區(qū)SHMKEY共享區(qū)首地址通過循環(huán)往共享區(qū)內(nèi)寫入依次數(shù)字124共享區(qū)第一個字中寫入長度24,以便接收進程讀等待接收進程讀取共享存儲區(qū)SHMKEY的id連接共享

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論