北郵大三上-操作系統(tǒng)-進程同步實驗報告_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)實驗二進程同步實驗班級:2009211311學號:姓名: schnee 21. 實驗目的 實驗目的1) 理解進程/線程同步的方法,學會運用進程/線程同步的方法解決實際問題; 2) 了解 windows 系統(tǒng)或 unix/linux 系統(tǒng)下中信號量的使用方法。2. 實驗要求 實驗要求編寫一個有關生產(chǎn)者和消費者的程序:每個生產(chǎn)者每次生產(chǎn)一個產(chǎn)品存入倉庫,每個消費者每次從倉庫中取出一個產(chǎn)品進行消費,倉庫大小有限,每次只能有一個生產(chǎn)

2、者或消費者訪問倉庫。要求:采用信號量機制。3. 環(huán)境說明 環(huán)境說明此實驗采用的是 Win7 下 Code::blocks 10.05 編譯器,采用 Win API 的信號量機制編程。此 word 實驗文檔中采用 notepad++的語法高亮。4. 實驗前期思考 實驗前期思考可能有多個生產(chǎn)者和消費者??梢约僭O輸入 P 表示創(chuàng)建一個生產(chǎn)者線程,輸入 C 表示創(chuàng)建一個消費者線程。生產(chǎn)者線程等待倉庫有空位并且占據(jù)此空位, ,然后等待倉庫的操作權

3、,執(zhí)行操作,最后釋放倉庫操作權。一開始以為是占位的操作在獲得操作權后,疑惑:若是等待空位后在等待獲得操作權時又沒有空位了,豈不是又不能放入了?若是先獲得操作權再等空位,則在無空位時會進入無窮等待狀態(tài),因為沒有人來改變空位個數(shù)。這兩個問題如何克服呢?其實第一個疑問是因為我對 wait 函數(shù)的具體操作還有點模糊,實際上 wait 操作便是一等到空位就順便占了,而不是我想的等位和占位分離。而第二個問題自然是不行的,這種操作順序應該拋棄。還是第

4、一個問題,由于我們無法在等操作權時判斷是否被生產(chǎn)者占著,無法判斷是否空位狀態(tài)改變了,所以我想到可以在等到操作權時在判斷一下是否現(xiàn)在還有空位,沒有就從頭開始等待空位。但是這可能又是無窮等待。等再細想 wait()函數(shù)的操作,突然發(fā)現(xiàn)其實我們想到的先人早已都考慮到了。wait()函數(shù)一有空位就占了,這樣我們只需再等操作權即可,相當于拿號等待,號完了就是沒位了,所以現(xiàn)在的位置實際不只是當前倉庫里的空位,還包括在它前面報名的生產(chǎn)者數(shù)目。順序確定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論