操作系統(tǒng)實驗報告 的生產(chǎn)者 消費者問題_第1頁
操作系統(tǒng)實驗報告 的生產(chǎn)者 消費者問題_第2頁
操作系統(tǒng)實驗報告 的生產(chǎn)者 消費者問題_第3頁
操作系統(tǒng)實驗報告 的生產(chǎn)者 消費者問題_第4頁
操作系統(tǒng)實驗報告 的生產(chǎn)者 消費者問題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

經(jīng)

產(chǎn)

者—

題一、目的實現(xiàn)對經(jīng)典的生產(chǎn)者—消費者問題的模擬,以便更好的理解經(jīng)典進程同步問題。二、實驗容及要求編制生產(chǎn)者—消費者算法,模擬一個生產(chǎn)者、一個消費者,共享一個緩沖池的情形。、實現(xiàn)對經(jīng)典的生產(chǎn)者—消費者問題的模擬,以便更好的理解此經(jīng)典進程同步問題生產(chǎn)者-消費者問題是典型的PV操問題,假設(shè)系統(tǒng)中有一個比較大的緩沖池,生產(chǎn)者的任務(wù)是只要緩沖池未滿就可以將生產(chǎn)出的產(chǎn)品放入其中,而消費者的任務(wù)是只要緩沖池未空就可以從緩沖池中拿產(chǎn)品。緩沖池被占用時,任何進程都不能訪問。、每一個生產(chǎn)者都要把自己生產(chǎn)的產(chǎn)品放入緩沖池,每個消費者從緩沖池中取走產(chǎn)消費。在這種情況下,生產(chǎn)者消費者進程同步,因為只有通過互通消息才知道是否能存入產(chǎn)品或者取走品。他們之間也存在互斥,即生產(chǎn)者消費者必須互斥訪問緩沖池,即不能有兩個以上的進程同時進。三、生產(chǎn)和消費者原分析在同一個進程地址空間內(nèi)執(zhí)行兩個線程產(chǎn)線程生產(chǎn)物品然后將物品放置在一個空緩沖區(qū)中供消費者線程消費費者線從緩沖區(qū)中獲得物品后釋放緩沖區(qū)生者線程生產(chǎn)物品,如果沒有空緩沖區(qū)可用那生者線程必須等待消費者線程釋放一個空緩沖區(qū)消者線程費物品時,如果沒有滿的緩沖區(qū),那么消費者線程將被阻擋,直到新的物品被生產(chǎn)出來。四、生產(chǎn)與消費者功描述:生產(chǎn)者功能描述:在同一個進程地址空間內(nèi)執(zhí)行兩個線程。生產(chǎn)者線程生產(chǎn)物品,然后將物品放置在一個空緩沖區(qū)中供消費者線程消費。當(dāng)生產(chǎn)者線程生產(chǎn)物品時,如果沒有空緩沖區(qū)可用那么生產(chǎn)者線程必須等待消費者線程釋放出一個空緩沖區(qū)。消費者功能描述:消費者線程從緩沖區(qū)獲得物品,然后釋放緩沖區(qū),當(dāng)消費者線程消費物品時如果沒有滿的緩沖區(qū),那么消費者線程將被阻塞,直到新的物品被生產(chǎn)出來。五、實驗境操作系統(tǒng)環(huán)境:Windows系。編程語言:。

六、生產(chǎn)與消費者的路和設(shè)計、序程生產(chǎn)者開始生產(chǎn)產(chǎn)品(empty)empty≤0N(mutex)Y存入緩沖區(qū)emptyempty-

Y緩沖區(qū)內(nèi)已滿已可用緩沖區(qū)N緩沖區(qū)正被其他進程占用SignalSignal(full)結(jié)束

消費者開始(full)消請求full≤0N(mutex)Y消費

Y緩沖區(qū)內(nèi)產(chǎn)品已空,不能進行消費N緩沖區(qū)正被其他進程占用full=full-SignalSignal結(jié)束

、要序碼//初始變void{mutex//full=0;//empty5;//i=lb_mutex.Text"1";"0";lb_empty.Text"5";}//消費從沖中費個品voidconsumer_Click(object{if(full>{if//{mutex//lb_mutex.Text"0";=}{",""MessageBoxButtons.OK);}}{MessageBox.Show("!""}}//生產(chǎn)向沖中入個品voidproducer_Click(objecte){//if0){//if{//mutex//lb_mutex.Text"0";

//}{//-","",}}{!""-}}//生產(chǎn)voide){if(bool1){switch{pictureBox1.Visible=pictureBox2.Visible=pictureBox3.Visible=pictureBox4.Visible=pictureBox5.Visible=}"";bool1=false;}{switch{pictureBox1.Visible=false;break;pictureBox2.Visible=false;break;pictureBox3.Visible=false;break;pictureBox4.Visible=false;break;pictureBox5.Visible=false;break;}"";bool1=true;}i=i+1;

//

if(i==5){//i==mutexlb_mutex.Text"1";switch{pictureBox1.Visible=pictureBox2.Visible=pictureBox3.Visible=pictureBox4.Visible=pictureBox5.Visible=}full=fullfull.ToString();empty-lb_empty.Textempty.ToString();"!";}}//消費voide){switch(count1){pictureBox1.Visible=pictureBox2.Visible=pictureBox3.Visible=pictureBox4.Visible=pictureBox5.Visible=}"";bool1=false;}else{switch(count1){pictureBox1.Visible=false;break;pictureBox2.Visible=false;break;pictureBox3.Visible=false;break;pictureBox4.Visible=false;break;pictureBox5.Visible=false;break;}lb_show.Text="";bool1=true;

}i=i+1;if(i==5){i==false;mutexlb_mutex.Text=switch(count1){pictureBox1.Visible=false;break;pictureBox2.Visible=pictureBox3.Visible=false;break;pictureBox4.Visible=false;break;pictureBox5.Visible=false;break;}-full=full-full.ToString();empty";}、運界和行果一般情況下,點一次生產(chǎn)者按紐mutex由變0緩沖區(qū)呈現(xiàn)閃爍狀態(tài)(表示正在存儲此時不可以再進行緩沖區(qū)操作,否則將顯示爍約秒后mutex由0變,閃爍停止,表示存過程結(jié)束;點一次消費者按紐mutex由變?yōu)?,緩沖區(qū)呈現(xiàn)閃爍狀態(tài)(表示正在消費時可以再進行緩沖區(qū)操作,否則將顯示“爍秒后mutex由0變1閃爍停止,表示消費過程結(jié)束。緩沖池滿后,若再點生產(chǎn)者按紐,會給出信息提示!緩沖池空后,若再點消費者按紐,也會給出信息提示!在存儲狀態(tài)或消費狀態(tài)(閃爍狀態(tài)是點生產(chǎn)者按紐還是消費者按紐都會給出”息提示。七、心得會本次實驗是關(guān)于生產(chǎn)者與消費者之間互斥和同步的問題。問題的是指是P、V操作,實驗設(shè)一個共享緩沖區(qū),生產(chǎn)者和消費者互斥的使用,當(dāng)一個線程使用緩沖區(qū)的時候,另一個讓其等待到前一個線程釋放緩沖區(qū)為止。生產(chǎn)者與消費者是一個與現(xiàn)實有關(guān)的經(jīng)驗問題過此原理舉一反三可以解決其他類似的問題。

溫馨提示

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

評論

0/150

提交評論