




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、進程同步模擬實驗姓名學號實驗日期成績院別班級實驗場地實驗課程名稱計算機操作系統(tǒng)實驗項目名稱進程同步模擬實驗對于每一個實驗項目,實驗報告(含預習)一般應包含以下內容:第一部分一一預習后的書面匯報。其主要內容應包含:*1、實驗目的; *2、實驗內容。第二部分一一實驗結果的書面匯報。其主要內容應包含:*3、實驗源代碼;*4、實驗結果及分析(含實驗測試輸入數據, 試驗運行結果截圖,用簡潔的語言總結實驗,匯報是否達到實驗目的);*5、實驗體會、問題討論(談體會或感想、提出建議或意見、討論 與實驗有關的且自己感興趣的問題、回答課后思考題)。一、實驗目的通過實驗模擬讀者和寫者之間的關系,了解并掌握他們之間的
2、關系及其原理。由此增加對進程 同步的問題的了解。具體如下:1)掌握基本的同步互斥算法,理解讀者和寫者模型;2)了解windows中多線程(多進程)的并發(fā)執(zhí)行機制,線程(進程)間的同步和互斥;3)學習使用windows中基本的同步對象,掌握相應的API。二、實驗內容用高級語言編寫和調試一個采用“讀寫平等”策略的“讀者寫者”問題的模擬程序。利用模擬 信號量機制實現讀者和寫者問題;通過用戶控制讀進程和寫進程,反應讀者和寫者問題中涉及的進程 的同步與互斥。問題描述:模擬用信號量機制實現讀者和寫者問題,即有兩組并發(fā)進程:讀者和寫者,共享一組數 據區(qū),進行讀寫操作,要求任一時刻“寫者”最多只允許一個,而“
3、讀者”則允許多 個。規(guī)則說明:允許多個讀者同時執(zhí)行讀操作;不允許讀者寫者同時操作;不允許多個寫者同時操作。三、實驗源程序(或實驗步驟)#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操作,讀操作完成時調用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)結束endl;coutL;while(L(w_num+r_num+1)|aL-1=1)if(aL-1=1)cout該對象已經在等待隊列中,請重新輸入: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;回四、實驗結果及分析回-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申 備申請只結束雀堂隊列中有 亙者請輸乂展項序,請.寫看3Umut e x =1 Rcount =0RmLit ex=l.5寫者4完成寫者S申請寫者6申請1讀者1申請3讀者3申請4讀者4申 亦讀者6申請14結束號N有 1 -目頁 井青-5J 待者S輸 等胃請Umut e x =2 Rcount =0Rnut ex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國際貿易合同示范文本
- 2025海外投資借款合同
- 2025年商業(yè)房地產租賃合同管理問題的思考與建議
- 2025年小食品購銷合同范本
- 2025農業(yè)生產承包合同(農田承包)
- 2025年監(jiān)理工程師《合同管理》合同法律關系與案例分析
- 2025國內勞務合同范本2
- 2025西安購銷合同格式
- 《高效化的教學流程》課件
- 《人力資源管理》課件
- 預制箱梁回彈強度偏低及原因報告
- H型鋼力學性能計算表
- 有效提升投訴客戶滿意度QC小組成果材料
- ISP98備用信用證中英文對照.doc
- F5負載均衡運維配置手冊V10
- 二年級數學上冊《認識銳角和鈍角》PPT課件(1)
- 管道支架重量計算表(計算支架)
- 關于進一步提高干部考察材料撰寫質量的思考
- 湖北省普通高級中學學生檔案
- PEEK耐腐蝕性數據表
- 福建省中小學教師隊伍管理暫行規(guī)定
評論
0/150
提交評論