


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第8頁 共8頁生產者消費者問題c 操作系統實驗報告三大問題之生產者與消費者問題計算機操作系統實驗報告題 目三大經典問題之生產者與消費者問題一、課程設計的性質與任務1、 加深對并發協作進程同步與互斥概念的理解。通過編寫程序實現進程 同步和互斥,使學生掌握有關進程(線程)同步與互斥的原理,以 及解決進程(線程)同步和互斥的算法,從而進一步鞏固進程(線 程)同步和互斥等有關的內容。2、掌握進程和線程的概念,進程(線程)的控制原語或系統調用的 使用。3、了解Windows20_0/_P中多線程的并發執行 機制,線程間的同步 和互斥。學習使用 Windows20_0/_P中基本的同步對象,掌握相應的 A
2、PI函數。4、培養學生能夠獨立進行知識綜合,獨立開發較大程序的能力。5、培養提高學生軟件開發能力和軟件的調試技術。6、培養學生開發大型程序的方法和相互合作的精神。7、培養學生的創新意識。培養學生的算法設計和算法分析p p 能力。9、培養學生對問題進行文字論述和文字表達的能力。二、課程設計的內容及其要求在 Windows_P、Windows20_0等操作系 統下,使用的VC VB、Java或C等編程語 言,采用 進程(線程)同步和互斥的技術編寫程 序實現生產者消費者問題或哲學家進餐問題或讀者-寫者問題或自 己設計一個簡單進程(線程)同步和互斥的實際問題。要求:(1 )經調試后程序能夠正常運行。否
3、否(2)采用多進程或多線程方式運行,體現了進程(線程) 同步互斥的關系。(3)程序界面美觀。三、實驗原理本實驗要求利用PV操作實現解決生產 者一一消費者問題中的 同步問題。此問題描述的是一群生產者進程在生產產品并將這些產 品提供給消費者進程去消費,在兩者之間設置了一個具有n個緩沖 區的緩沖池,生產者進程將它所生產的產品放入一個緩沖區,消費 者進程可從緩沖區中取走產品去消費,但它們之間必須保持同步, 即不允許消費者進程到一個空緩沖區去取產品,也不允許生產者進 程向一個已裝滿且尚未取出的緩沖區中投放產品,并且生產者消費 者互斥使用緩沖區。四、實驗原理圖五、算法實現有一個生產者線程 ProduceT
4、hread,有1個消費者進程 CustomerThread; 緩沖區為shareList。使用線程同步:用synchonized關鍵字(加鎖)使得一個時間內只能 有一個線程得到執行,另一個線程必須等待當前線程執行完這個代碼塊以后 才能執行該代碼塊;wait讓線程進入等待狀態;notify 函數喚醒一個 處于等待狀態的線程。程序運行流程圖如下::(如不在外部中斷,程序將一直循環運行) 開始生產者消費者生產者倉庫是否生產者生消費者等消費者消喚醒消費喚醒生產六、代碼package操作系統;/_產品類_/publicclass Goods int id;Str ing n ame;public Str
5、ing toStringreturn id+“ ”+name;package操作系統;import/_消費者線程:有產品時可以取出,無產品時等待_/publicclass CustomerThreade_tends Threadprivate ListshareList:CustomerThread(LjstshareList)=shareList;publicvoid run“消費線程已啟動.”+);while (true )try synchronized (shareList)while =0)oString); catch (E_ception ef);package 操作系統 ;im
6、port/_生產者線程:無數據時再存,存入一個要發通知_/publicclass ProduceThreade_tends Thread.“+);while (true )try (20_0);synchronized (shareList)while 0);while =0)Goods gs = n ewGoods;coun t+;=co unt;=”產品“+cou nt;”-生產線程放入對象:&;+);(gs);tart;tart;七、運行結果八、實驗心得在此次實驗中我們模擬 PV 操作同步機構,來解決消費者與生產者這兩 個進程之間的同步協調問題。實驗中值得注意的是解決進程同步需要做哪些 工作,如何利用信號量機制來解決進程同步問題等等。通過本次實驗,我對 操作系統的 p、v 有了進一步認識, 深入了解了 p、v 操作的實質和其重要性, 加深了我對操作系統中多線程機制的理解和認識,更讓我認識到知識的掌 握,僅靠學習理論知識是遠遠不夠的,要與實際動手操作相結合才能更好地 理解和分析p p 問題。此外,我也發現自己在編程上仍存在較大的問題,本次實 驗讓我對 java 語言的線程編寫水平有了提高。我日后會不斷加深各方面知 識的學習,彌補自己的不足。實驗給了我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人如何做家庭教育
- 電子行業非標產線
- 2025年少年宮活動方案
- 出鏡記者與主持人實務 課件 第五章 現場隨機采訪
- 湘教版開花和結果
- 校園元旦晚會活動方案策劃書2025年
- 幼兒園自理能力主題教育課件
- 伺服系統與工業機器人課件第11章 工業機器人系統
- 急診護理中的美學要求
- 咳嗽病的中醫護理
- DB34∕T 3791-2021 智慧藥房驗收規范
- 公司章程與內部管理規則制度
- 20以內加減法口算練習題帶括號填空135
- 百位數加減法練習題連加
- 地下綜合管廊工程機電安裝工程施工方案
- 高速公路路網數字底座研究與建設
- 藥學專業崗位分析報告范文
- 七年級道法上冊 第一單元 少年有夢 單元測試卷(人教版 2024年秋)
- DL-T586-2008電力設備監造技術導則
- JT-T-1246-2019公路與鐵路兩用橋梁技術要求
- 河南省南陽市唐河縣2023-2024學年八年級下學期期末數學試題
評論
0/150
提交評論