




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗報告*口T專業(yè)網(wǎng)絡工程班級08102班 學號01號姓名胡雙雙課程名稱操作系統(tǒng)學年2010-2011學期下課程類別專業(yè)必修限選任選實踐口實驗時間2010年11月3日實驗名稱實驗一:生產者與消費者問題實驗目的和要求全面理解生產者與消費者問題模型,掌握解決該問題的算法思想,正確使用同步機制。實驗軟硬件要求Pentium(R) Dual-Core CPU 1.96G 內存WINDOWS XP ProfessionalVisual C+6.0實驗內容、方法和步驟(可附頁)問題描述:一組生產者向一組消費者提供商品,共享一個有界緩沖池,生產者向其中放入商品,消費者從中 取得商品。假定這些生產者和消費者互
2、相等效,只要緩沖池未滿,生產者可將商品送入緩沖池;只要緩沖池未空, 消費者可從緩沖池取走一商品。功能要求:根據(jù)進程同步機制,編寫一個解決上述問題的程序,可顯示緩沖池狀態(tài)、放商品、取商品等過程。具體參數(shù):有1個生產者進程;有1個消費者進程;緩沖區(qū)單元個數(shù)BUFFER_NUM =5;不同的生產進程可生產不同的產品,自己可任意定義,在本程序中是直接將相應生產者代號放入緩沖區(qū),消 費時將某消費者消費某生產者的信息顯示出來 實驗結果:見截圖小結從此次試驗中,學到了很多關于編程的知識,以前對于編程的認識只停留在一些簡單的算法上,并沒有系統(tǒng)的 進行編程訓練。此次的試驗是以前從沒接觸過的多線程,中間涉及的同步
3、及互斥問題,在設計軟件及系統(tǒng)時,都是 極其重要的。多線程實驗對于我們現(xiàn)階段確實有點偏難,不過,在經過請教同學及看參考書,終于自己寫出了一個相對于簡 單一點的生產者消費者的多線程程序。評定成績:批閱教師:年 月 日一、問題概述一組生產者向一組消費者提供消息,它們共享一個有界緩沖池,生產者向其中投放消息,消費者從中取得消息。只要緩沖池未滿,生產者可將消息送入緩沖池;只要緩沖池未空,消費者可從假定這些生產者和消費者互相等效,緩沖池取走一個消息。二、設計流程圖(1)生產者流程圖:(2)消費者流程圖三、數(shù)據(jù)定義# define BUFFER_NUM 5 / 緩沖區(qū)個數(shù)int mutexBUFFER_NU
4、M=0,0,0,0,0;int bufferBUFFER_NUM=0,0,0,0,0;/ 初始化緩沖區(qū)為空HANDLE g_hMutex; /用于線程間的互斥void show();函數(shù),顯示生產者及消費者過程DWORD WINAPI Producer(LPVOID lpPara);過程,生產者生產產品過程DWORD WINAPI Customer(LPVOID lpPara);/ 過程,消費者消費產品過程四、源程序#include#include# define BUFFER_NUM 5 / 緩沖區(qū)個數(shù)int mutexBUFFER_NUM=0,0,0,0,0; 一int bufferBUF
5、FER_NUM=0,0,0,0,0;/初始化緩沖區(qū)為空HANDLE g_hMutex; /用于線程間的互斥 void show。for(int i=0;iBUFFER_NUM;i+)printf(第d 個緩沖區(qū)為:dn”,i,bufferi);printf(nn);DWORD WINAPI Producer(LPVOID lpPara)while(true)for(int i=0;iBUFFER_NUM;i+)if(bufferi=0)if(mutexi=0)mutexi=1;/加 鎖WaitForSingleObject(g_hMutex,INFINITE);bufferi=1;printf
6、(生產出一個產品,已放入第d個緩沖區(qū)n,i);show();Sleep(1000);ReleaseMutex(g_hMutex);mutexi=0;/解鎖break;if(i=BUFFER_NUM)printf(緩沖區(qū)已滿,請等待/);/緩沖區(qū)已滿,請等待Sleep(1000);DWORD WINAPI Customer(LPVOID lpPara)while(true)for(int j=0;jBUFFER_NUM;j+)if(bufferj=1)if(mutexj=0)mutexj=1;/加 鎖WaitForSingleObject(g_hMutex,INFINITE);bufferj=0
7、;printf(”消費者已消費第d個緩沖區(qū)的產品n”,j);show();Sleep(1000);ReleaseMutex(g_hMutex);mutexj=0;/解鎖break;if(j=BUFFER NUM)printf(-沒有產品可消費,請等待/);/沒有產品可消費,請等待 Sleep(1000);int main(int argc,char* argv)HANDLE handle4;g_hMutex = CreateMutex(NULL,FALSE,NULL);for(int i=0;i2;i+)handlei=CreateThread(NULL,0,Producer,NULL,0,N
8、ULL);for(i=2;i11 11 11 11 11個緩沖區(qū)的產品 0 0 I I I一翳為為為為為一窘區(qū)區(qū)區(qū)區(qū)區(qū)一 &.:.甲,甲中中中 嘉瀉*紗個緩沖區(qū)的產品000II(3)空緩沖區(qū),無產品消費個緩沖區(qū)的產品1&餐為為為為為 齦區(qū)區(qū)區(qū)區(qū)區(qū) . .E!.甲.甲.甲.甲 -匚爰爰蓼備境 SB個緩沖區(qū)的產品3&3Bjl-.甘.甘.甘.甘. 區(qū)區(qū)區(qū)區(qū)區(qū) 密m.m.m.m.m. _|11 11 11 11 11 一匚爰爰爰爰爰 +-aua土au . -0 1A 2 T 4 逍密直廣品可浦落 譚蜀括有產品苛常聶 請鷺4(4)緩沖區(qū)已滿,等待己放入第2個緩沖區(qū)01111匚口 燈=.燈=.燈=.燈=.燈= qj區(qū)區(qū)區(qū)區(qū)區(qū) 占 口 口 口 口 %
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年金華市人才服務和人事中心招聘真題
- 土木工程技術法規(guī)適用性試題及答案
- 2025年大學物理實驗設計題及答案
- 2025年高校畢業(yè)生創(chuàng)業(yè)的扶持政策分析試題及答案
- 中國生態(tài)養(yǎng)豬場行業(yè)十四五發(fā)展分析及投資前景與戰(zhàn)略規(guī)劃研究報告2025-2028版
- 2025年大學物理課程精髓與試題答案
- 中國稅制各章試題及答案
- 2025年醫(yī)療儀器設備及器械項目建議書
- 地下建筑火災撲救實戰(zhàn)演練腳本(新能源火災撲救、冷庫火災撲救、管道火災撲救)
- 環(huán)保型化學纖維生產技術與方法考核試卷
- 匠作匠場手風滇南“一顆印”民居大木匠作調查研究
- 《道德經》的智慧啟示智慧樹知到期末考試答案2024年
- 2024年中國人保財險全系統(tǒng)廣西分公司招聘筆試參考題庫含答案解析
- 交警酒駕案件培訓課件
- 家長會示范課件培養(yǎng)孩子養(yǎng)成獨立自主的習慣
- 2024老人智能手機培訓ppt大全
- 比亞迪銷售模式分析報告
- 2024年魚子醬項目營銷策劃方案
- 非洲自然災害
- 《雷達干擾技術概述》課件
- 中韓勞動法比較研究
評論
0/150
提交評論