進程同步模擬實驗_第1頁
進程同步模擬實驗_第2頁
進程同步模擬實驗_第3頁
進程同步模擬實驗_第4頁
進程同步模擬實驗_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、進程同步模擬實驗姓名學(xué)號實驗日期成績院別班級實驗場地實驗課程名稱計算機操作系統(tǒng)實驗項目名稱進程同步模擬實驗對于每一個實驗項目,實驗報告(含預(yù)習(xí))一般應(yīng)包含以下內(nèi)容:第一部分一一預(yù)習(xí)后的書面匯報。其主要內(nèi)容應(yīng)包含:*1、實驗?zāi)康模?*2、實驗內(nèi)容。第二部分一一實驗結(jié)果的書面匯報。其主要內(nèi)容應(yīng)包含:*3、實驗源代碼;*4、實驗結(jié)果及分析(含實驗測試輸入數(shù)據(jù), 試驗運行結(jié)果截圖,用簡潔的語言總結(jié)實驗,匯報是否達到實驗?zāi)康模?5、實驗體會、問題討論(談體會或感想、提出建議或意見、討論 與實驗有關(guān)的且自己感興趣的問題、回答課后思考題)。一、實驗?zāi)康耐ㄟ^實驗?zāi)M讀者和寫者之間的關(guān)系,了解并掌握他們之間的

2、關(guān)系及其原理。由此增加對進程 同步的問題的了解。具體如下:1)掌握基本的同步互斥算法,理解讀者和寫者模型;2)了解windows中多線程(多進程)的并發(fā)執(zhí)行機制,線程(進程)間的同步和互斥;3)學(xué)習(xí)使用windows中基本的同步對象,掌握相應(yīng)的API。二、實驗內(nèi)容用高級語言編寫和調(diào)試一個采用“讀寫平等”策略的“讀者寫者”問題的模擬程序。利用模擬 信號量機制實現(xiàn)讀者和寫者問題;通過用戶控制讀進程和寫進程,反應(yīng)讀者和寫者問題中涉及的進程 的同步與互斥。問題描述:模擬用信號量機制實現(xiàn)讀者和寫者問題,即有兩組并發(fā)進程:讀者和寫者,共享一組數(shù) 據(jù)區(qū),進行讀寫操作,要求任一時刻“寫者”最多只允許一個,而“

3、讀者”則允許多 個。規(guī)則說明:允許多個讀者同時執(zhí)行讀操作;不允許讀者寫者同時操作;不允許多個寫者同時操作。三、實驗源程序(或?qū)嶒灢襟E)#include int L;int r_num;int w_num;int Wmutex=1;int Rcount=0;int Rmutex=1;int r10=0,0,0,0,0,0,0,0,0,0;int w10=0,0,0,0,0,0,0,0,0,0;int w_wait11=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1;int r_wait11=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1;void write_

4、p(int i);void write_v(int i);void radd_p(int i);void radd(int i);void read_p(int i);void radd_v(int i);void read(int i);void rsub_p(int i);void rsub(int i);void read_v(int i);void rsub_v(int i);void write(int i);void write_p(int i)/模擬寫者對Wmutex的P操作,同時也作為寫者進程的入口Wmutex-;if (Wmutex0)w_wait-Wmutex-1=i;el

5、sewrite(i);void write(int i)wi=4;void write_v(int i)/模擬寫者對Wmutex的V操作,同時也作為讀者進程的入口wi=0;Wmutex+;if(Wmutex=0)&(w_wait0w_num)y=w_wait0;for(x=0;xw_num;x+)w_waitx=w_waitx+1;write(y);elsey=r_wait0;for(x=0;xw_num;x+)w_waitx=w_waitx+1;for(x=0;xr_num;x+)r_waitx=r_waitx+1;radd_v(y);void radd_p(int i)/模擬讀之前對Rmu

6、tex的操作,同時也作為讀者進程的入口Rmutex-;if(Rmutex0)r_wait-Rmutex=i;elseradd(i);void radd(int i)/Rcount 加一Rcount+;if(Rcount=1)read_p(i);elseradd_v(i);void read_p(int i)/模擬讀者對 Rmutex 的 P 操作Wmutex-;if(Wmutex0)w_wait-Wmutex-1=10;r_wait0=i;elseradd_v(i);void radd_v(int i)/模擬讀者對 Rmutex 的 V 操作Rmutex+;if(Rmutex=0)int x,

7、y;y=r_wait0;for(x=0;xr_num;x+)r_waitx=r_waitx+1;radd(y);read(i);void read(int i)/讀操作ri=1;void rsub_p(int i)/模擬讀之后對Rmutex的P操作,讀操作完成時調(diào)用ri=0;Rmutex-;rsub(i);void rsub(int i)/Rcount 減一Rcount-;if(Rcount=0)read_v(i);elsersub_v(i);void read_v(int i)/模擬讀者對 Rmutex 的 V 操作Wmutex+;if(Wmutex=0)&(w_wait0w_num)y=w

8、_wait0;for(x=0;xw_num;x+)w_waitx=w_waitx+1;write(y);elsey=r_wait0;for(x=0;xw_num;x+)w_waitx=w_waitx+1;for(x=0;xr_num;x+)r_waitx=r_waitx+1;radd_v(y);rsub_v(i);void rsub_v(int i)/模擬讀之后對 Rmutex 的 V 操作Rmutex+;int main()coutw_num;while(w_num10)coutw_num;coutr_num;while(r_num10)coutr_num;int i,x,y,a20;whi

9、le(1)cout;for(x=0;x20;x+)ax=0;coutWmutex=WmutexRcount=RcountRmutex=Rmutexendl;for(x=0;xw_num;x+)if(wx=1)cout寫者(x+1)號正在寫endl;for(x=0;xr_num;x+)if(rx=1)cout讀者(x+1)號正在寫endl;if(w_wait0=-1)cout-等待隊列空閑-endl;elsecout等待隊列中有:;for (x=0;xw_num;x+)if(w_waitx=10)for(y=0;y5;y+)if(r_waity!=1)cout-讀者=0)&(w_waitxw_n

10、um)cout-寫,(w_waitx+1);coutendl;for(x=0;xw_num;x+)int L=0;for(y=0;yw_num;y+)if(x=w waity)ax=1;L=1;if(x=1) continue;cout寫者”(x+1);if(wx=0)cout申請”;elsecout完成”;for(x=0;xw_num;x+)int L=0;for(y=0;yw_num;y+)if(x=w_waity)ax+w_num=1;L=1;if(x=1) continue;cout(x+1)讀者(x+1);if(rx=0)cout申請;elsecout完成;cout(w_num+r_

11、num+1)結(jié)束endl;coutL;while(L(w_num+r_num+1)|aL-1=1)if(aL-1=1)cout該對象已經(jīng)在等待隊列中,請重新輸入:elsecoutL;for(x=0;xw_num;x+)if(L=(x+1)if(wx=0)write_p(x);elsewrite_v(x);break;for(x=0;xr_num;x+)if(L=(x+1+w num)if(rx=0)radd_p(x);elsersub_p(x);break;if(L=(w_num+r_num+1)return 0;回四、實驗結(jié)果及分析回-C:UsersAdm i n istrator.PC-2

12、0140913 QRDDe5ktopDe b u gsh iya n 1 .exe: 7Umut ex=lRco Lin t =0Rmut e x=l:等待隊JU 寶閑- 、一、_ 、一 、者1申鬲寫音3申請寫者4申請寫者5串請寫者6申請1.讀者1申請3讀者3申請4讀者4庫S讀者S申請6讀者6申請14備束輸X通項序號XWmut e x =0Rc o Lin t =0Rmut e x=l請S讀者S申請6龍請輸X選項序號:6直寫者4完成寫者S申請寫者6申請1讀者1申請3讀者3申請4讀者4申 備申請只結(jié)束雀堂隊列中有 亙者請輸乂展項序,請.寫看3Umut e x =1 Rcount =0RmLit ex=l.5寫者4完成寫者S申請寫者6申請1讀者1申請3讀者3申請4讀者4申 亦讀者6申請14結(jié)束號N有 1 -目頁 井青-5J 待者S輸 等胃請Umut e x =2 Rcount =0Rnut ex

溫馨提示

  • 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

提交評論