實(shí)驗(yàn)1生產(chǎn)者消費(fèi)者實(shí)驗(yàn)報(bào)告_第1頁
實(shí)驗(yàn)1生產(chǎn)者消費(fèi)者實(shí)驗(yàn)報(bào)告_第2頁
實(shí)驗(yàn)1生產(chǎn)者消費(fèi)者實(shí)驗(yàn)報(bào)告_第3頁
實(shí)驗(yàn)1生產(chǎn)者消費(fèi)者實(shí)驗(yàn)報(bào)告_第4頁
實(shí)驗(yàn)1生產(chǎn)者消費(fèi)者實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

佛山科學(xué)技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)原理實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)一多個生產(chǎn)者消費(fèi)者同步模型專業(yè)班級姓名學(xué)號指導(dǎo)教師成績?nèi)掌谝?、?shí)驗(yàn)?zāi)康恼莆栈镜耐交コ馑惴ǎ斫馍a(chǎn)者和消費(fèi)者模型。了解Windows2000/XP中多線程的并發(fā)執(zhí)行機(jī)制,線程間的同步和互斥。學(xué)習(xí)使用Windows2000/XP中基本的同步對象,掌握相應(yīng)的API二、實(shí)驗(yàn)內(nèi)容;(一)相關(guān)基礎(chǔ)知識

1、進(jìn)程同步

2、同步對象3、生產(chǎn)消費(fèi)者模型 模型特點(diǎn)(緩沖池、生產(chǎn)和消費(fèi)的規(guī)則、測試用例)(二)程序的實(shí)現(xiàn):1、實(shí)驗(yàn)環(huán)境2、相關(guān)API:有關(guān)操縱同步對象API三、實(shí)驗(yàn)原理;生產(chǎn)者-消費(fèi)者(producer-consumer)問題,也稱作有界緩沖區(qū)(bounded-buffer)問題,兩個進(jìn)程共享一個公共的固定大小的緩沖區(qū)。其中一個是生產(chǎn)者,用于將消息放入緩沖區(qū);另外一個是消費(fèi)者,用于從緩沖區(qū)中取出消息。當(dāng)緩沖區(qū)已經(jīng)滿了,而此時生產(chǎn)者還想向其中放入一個新的數(shù)據(jù)項(xiàng)的情形,其解決方法是讓生產(chǎn)者此時進(jìn)行休眠,等待消費(fèi)者從緩沖區(qū)中取走了一個或者多個數(shù)據(jù)后再去喚醒它。同樣地,當(dāng)緩沖區(qū)已經(jīng)空了,而消費(fèi)者還想去取消息,此時也可以讓消費(fèi)者進(jìn)行休眠,等待生產(chǎn)者放入一個或者多個數(shù)據(jù)時再喚醒它。四、實(shí)驗(yàn)步驟;主函數(shù)主函數(shù)初始化緩沖區(qū)、消費(fèi)者隊(duì)列以及同步對象提取線程信息完成線程相關(guān)同步對象的初始化創(chuàng)建生產(chǎn)者和消費(fèi)者線程等待所有線程結(jié)束程序結(jié)束NN生產(chǎn)者進(jìn)入臨界區(qū)(所有生產(chǎn)者之間互斥)存在緩沖區(qū)?另一生產(chǎn)者正在寫?生產(chǎn)者在空緩沖區(qū)自己的倉庫中寫入產(chǎn)品通過信號量通知等待本產(chǎn)品的消費(fèi)者退出臨界區(qū)結(jié)束生產(chǎn)進(jìn)程Y阻塞此產(chǎn)品正在此產(chǎn)品正在被消費(fèi)?N消費(fèi)者消費(fèi)者請求?此請求可被滿足?阻塞確定產(chǎn)品位置進(jìn)入臨界區(qū)(對同一產(chǎn)品進(jìn)行消費(fèi)的消費(fèi)者之間互斥)消費(fèi)產(chǎn)品退出臨界區(qū)Y阻塞YNN結(jié)束消費(fèi)者進(jìn)程Y1.輸入生產(chǎn)者個數(shù);2.輸入消費(fèi)者個數(shù);3.輸入每個生產(chǎn)者的倉庫大?。?.進(jìn)程同步運(yùn)行。五、程序源代碼及注釋六、實(shí)驗(yàn)結(jié)果分析1、運(yùn)行結(jié)果如下:2、結(jié)果分析及體會此實(shí)驗(yàn)的編程思想主要是,(1)生產(chǎn)者獲得臨界區(qū)數(shù)組后,在屬于他的倉庫中生產(chǎn)產(chǎn)品,并釋放一定的信號量,允許消費(fèi)者來取走產(chǎn)品。當(dāng)達(dá)到倉庫的最大容量后,生產(chǎn)者進(jìn)入休眠狀態(tài)(由休眠時間決定),等待消費(fèi)者取走產(chǎn)品。(2)消費(fèi)者根據(jù)本身的消費(fèi)序號隊(duì)列進(jìn)行產(chǎn)品消費(fèi)。當(dāng)消費(fèi)者得知生產(chǎn)者釋放信號量后,進(jìn)入臨界區(qū)進(jìn)行消費(fèi),當(dāng)產(chǎn)品為0時,消費(fèi)者進(jìn)入休眠狀態(tài),等待生產(chǎn)者生產(chǎn)。七、心得體會這是操作系統(tǒng)的第一個實(shí)驗(yàn)課,由于之前的編程都沒涉及到多線程操作,所以在上機(jī)過程中遇到過很多問題。后來經(jīng)過請教他人和自己翻閱后,明白了線程的概念和使用方法。所以,這次實(shí)驗(yàn)讓我明白到,單靠理論知

溫馨提示

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

最新文檔

評論

0/150

提交評論