freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)實驗報告經(jīng)典生產(chǎn)者—消費者問題范文大全-文庫吧

2025-03-27 04:21 本頁面


【正文】 第二篇:操作系統(tǒng)實驗報告經(jīng)典生產(chǎn)者 — 消費者問題 實驗二經(jīng)典的生產(chǎn)者 — 消費者問題 一、目的 實現(xiàn)對經(jīng)典的生產(chǎn)者 — 消費者問題的模擬, 以便更好的理解經(jīng)典進程同步問題。 二、實驗內(nèi)容及要求 編制生產(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)者消費者必須互斥訪問緩沖池,即不能有兩個以上的進程同時進行。 三、生產(chǎn)者和消費者原理分析 在同一個進程地址空間內(nèi)執(zhí)行兩個線程。 生產(chǎn)者線程生產(chǎn)物品,然后將物品放置在一個空緩沖區(qū)中供消費者線程消費。 消費者線程從緩沖區(qū)中獲得物品,然后釋放緩沖區(qū)。 當生產(chǎn)者線程生產(chǎn)物品時,如果沒有空緩沖區(qū)可用,那么生產(chǎn)者線程必須等待消費者線程 釋放一個空緩沖區(qū)。 當消費者線程消費物品時,如果沒有滿的緩沖區(qū),那么消費者線程將被阻擋,直到新的物品被生產(chǎn)出來。 四、生產(chǎn)者與消費者功能描述: 生產(chǎn)者功能描述:在同一個進程地址空間內(nèi)執(zhí)行兩個線程。生產(chǎn)者線程生產(chǎn)物品,然后將物品放置在一個空緩沖區(qū)中供消費者線程消費。當生產(chǎn)者線程生產(chǎn)物品時,如果沒有空緩沖區(qū)可用,那么生產(chǎn)者線程必須等待消費者線程釋放出一個空緩沖區(qū)。 消費者功能描述:消費者線程從緩沖區(qū)獲得物品,然后釋放緩沖區(qū),當消費者線程消費物品時,如果沒有滿的緩沖區(qū),那么消費者線程將被阻塞,直到新的物品被生產(chǎn)出來。 五、實驗環(huán)境 操作系統(tǒng)環(huán)境: Windows系統(tǒng)。編程語言: C。 六、生產(chǎn)者與消費者的思路和設(shè)計 程序流程圖 (1)生產(chǎn)者開始生產(chǎn)產(chǎn)品 Waitempty≤ 0YNWait 緩沖區(qū)內(nèi)已滿,已無可用緩沖區(qū) NMutex=1Y 緩沖區(qū)正被其他程占用進存入緩沖區(qū) empty=empty1SignalSignal(full)結(jié)束 (2)消費者 開始 Wait(full)消費請求 full≤ 0YNWait緩沖區(qū)內(nèi)產(chǎn)品已空,不能進行消費 NMutex=1Y 消 費 緩 沖 區(qū) 正 被 其 他 程 占 用 進full=full1SignalSignal結(jié)束 2 、 主 要 程 序 代 碼 // 初 始 化 變 量privatevoidForm1_Load(objectsender,EventArgse){mutex=1。// 互斥信號量 full=0。//緩沖池中滿緩沖區(qū)的數(shù)量 empty=5。//緩沖池中空緩沖區(qū)的數(shù)量 count1=0。//生產(chǎn)的產(chǎn)品數(shù)目 i=0。=1。=0。=5。}//消 費 者 從 緩 沖 區(qū) 中 消 費 一 個 產(chǎn) 品privatevoidconsumer_Click(objectsender,EventArgse){if(full0){//消費者已進入互斥臨界區(qū) if(mutex==1)//申請進入臨界區(qū){mutex=0。//消費者已進入互斥臨界區(qū) =0。=true。//啟動消費者消費緩沖區(qū)產(chǎn)品 }else{(緩沖區(qū)被占用,請等待。 ,信息提 。}}else{(緩沖區(qū)為空,不能消費 !,信息提示,。}}// 生 產(chǎn) 者 向 緩 沖 區(qū) 中 存 入 一 個 產(chǎn) 品privatevoidproducer_Click(objectsender,EventArgse){ count1=count1+if(empty0){1。 // //生產(chǎn)一個產(chǎn)品 有緩沖區(qū)可放產(chǎn)品 if(mutex==1){ // 申請進入臨界區(qū) mutex=0。 // 生產(chǎn)者已進入臨界區(qū) =0。 ()。//啟動生產(chǎn)者將產(chǎn)品放入緩沖區(qū) }else{//不能進入臨界區(qū)count1=count11。(緩沖區(qū)被占用,請等待。 ,信息提示 ,。}}else{(緩沖區(qū)已滿 !,信息提示 ,。//無緩沖區(qū) 可 放 產(chǎn) 品 count1=count11。}}// 生 產(chǎn) 者privatevoidtimer1_Tick_1(objectsender,EventArgse){if(bool1){switch(count1){case1:=true。break。case2:=true。break。case3:=true。break。case4:=true。break。case5:=true。break。}=生產(chǎn)者進程占用緩沖區(qū),請等待。 。bool1=false。}else{switch(count1){case1:=false。break。case2:=false。break。case3:=false。break。case4:=false。break。case5:=false。break。}=生產(chǎn)者進程占用緩沖區(qū),請等待。 。bool1=true。}i=i+1。if(i==5) {// 循 環(huán) 緩 沖 區(qū) , 首 尾 相 接i=0。=false。mutex=1。=1。switch(count1){case1:=true。break。case2:=true。break。case3:=true。break。case4:=true。break。case5:=true。break。}full=full+1。=()。empty=empty1。=()。= 生 產(chǎn) 結(jié)束 !。}}// 消 費 者privatevoidtimer_consumer_Tick(objectsender,EventArgse){if(bool1){switch(count1){case1:=true。break。case2:=true。break。case3:=true。break。case4:=true。break。case5:=true。break。}=消費者進程占用緩沖區(qū),請等待。 。bool1=false。}else{switch(count1){case1:=false。break。case2:=false。break。case3:=false。break。case4:=false。break。case5:=false。break。}=消費者進程占用緩沖區(qū),請等待。 。bool1=true。} i=i+1。if(i==5){i=0。=false。mutex=1。=1。switch(count1){case1:=false。break。case2:=false。break。case3:=false。break。case4:=false。break。case5:=false。break。}count1=count11。full=full1。=()。empty=empty+1。=()。=消費結(jié)束! 。}運行界面和運行結(jié)果一般情況下,點一次生產(chǎn)者按紐, mutex由 1 變?yōu)?0,緩沖區(qū)呈現(xiàn)閃爍狀態(tài)(表示正在存儲) ,此時不可以再進 行緩沖區(qū)操作,否則將顯示“生產(chǎn)者進程正在占用緩沖區(qū),請等待”。閃爍約秒后, mutex 由 0 變?yōu)?1,閃爍停止,表示存儲過程結(jié)束;點一次消費者按紐, mutex 由 1變?yōu)?0,緩沖區(qū)呈現(xiàn)閃爍狀態(tài)(表示正在消費) ,此時不可以再進行緩沖區(qū)操作,否則將顯示“消費者進程正在占用緩沖區(qū),請等待”。閃爍約秒后, mutex 由 0 變?yōu)?1,閃爍停止,表示消費過程結(jié)束。緩沖池滿后,若再點生產(chǎn)者按紐,會給出信息提示: “緩沖區(qū)已滿 !”。 緩沖池空后,若再點消費者按紐,也會給出信息提示: “緩沖區(qū)為空,不能消費 !”。 在存儲狀態(tài)或消費狀態(tài)(閃爍狀態(tài)) ,無論是點生產(chǎn)者按紐還是消費者按紐都會給出“緩沖區(qū)被占用,請等待?!毙畔⑻崾?。 七、心得體會 本次實驗是關(guān)于生產(chǎn)者與消費者之間互斥和同步的問題。問題的是指是 P、 V 操作,實驗設(shè)一個共享緩沖區(qū),生產(chǎn)者和消費者互斥的使用,當一個線程使用緩沖區(qū)的時候,另一個讓其等待直到前一個線程釋放緩沖區(qū)為止。 生產(chǎn)者與消費者是一個與現(xiàn)實有關(guān)的經(jīng)驗問題,通過此原理舉一反三可以解決其他類似的問題。 通過本實驗設(shè)計,我們對操作系統(tǒng)的 P、 V 進一步的認識,深入的了解 P、 V 操作的實質(zhì)和其重要性。課本的理論知識進一步闡述了現(xiàn)實中的實際問題。 實驗中,我們小組分工合作,共同學習,雖然在實驗中遇到了一些問題,但在老師和同學的細心指導和熱心幫助下解決了。同時,了解到團隊精神的重要性,也為以后的學習和工作打下了堅實的基礎(chǔ),同時積累了寶貴的經(jīng)驗。 第三篇:實驗 4生產(chǎn)者消費者問題報告 南京信息工程大學實
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1