




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院學(xué) 生 實(shí) 驗(yàn) 報(bào) 告姓名: 年級(jí)專業(yè)班級(jí) 日期 2008 年 11 月 25日 成績(jī) 課程名稱操作系統(tǒng)實(shí)驗(yàn)名稱進(jìn)程同步和互斥 實(shí)驗(yàn)類型驗(yàn)證 設(shè)計(jì)綜合 創(chuàng)新【實(shí)驗(yàn)?zāi)康?、要求】?)通過(guò)編寫(xiě)程序?qū)崿F(xiàn)進(jìn)程同步和互斥,掌握有關(guān)進(jìn)程(線程)同步與互斥的原理,以及解決進(jìn)程(線程)同步和互斥的算法,從而進(jìn)一步鞏固進(jìn)程(線程)同步和互斥等有關(guān)的內(nèi)容。(2)了解Windows2000/XP中多線程的并發(fā)執(zhí)行機(jī)制,線程間的同步和互斥。(3)學(xué)習(xí)使用Windows2000/XP中基本的同步對(duì)象,掌握相應(yīng)的API函數(shù)。(4)掌握進(jìn)程和線程的概念,進(jìn)程(線程)的控
2、制原語(yǔ)或系統(tǒng)調(diào)用的使用?!緦?shí)驗(yàn)內(nèi)容】在Windows XP操作系統(tǒng)下,使用java等編程語(yǔ)言,采用進(jìn)程(線程)同步和互斥的技術(shù)編寫(xiě)程序?qū)崿F(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題?!緦?shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)裝有JDK1.6 的PC電腦一臺(tái)【實(shí)驗(yàn)步驟、過(guò)程】(含原理圖、流程圖、關(guān)鍵代碼,或?qū)嶒?yàn)過(guò)程中的記錄、數(shù)據(jù)等)生產(chǎn)者進(jìn)程(進(jìn)程由多個(gè)線程組成)生產(chǎn)信息,例如它可以是計(jì)算進(jìn)程。消費(fèi)者進(jìn)程使用信息,它可以是輸出打印進(jìn)程。由于生產(chǎn)者和消費(fèi)者彼此獨(dú)立,且運(yùn)行速度不確定,所以很可能出現(xiàn)生產(chǎn)者已產(chǎn)生了信息而消費(fèi)者卻沒(méi)有來(lái)得及接受信息這種情況。為此,需要引入由一個(gè)或者若干個(gè)存儲(chǔ)單元組成的臨時(shí)存儲(chǔ)區(qū),以便存放生產(chǎn)
3、者所產(chǎn)生的信息,平滑進(jìn)程間由于速度不確定所帶來(lái)的問(wèn)題。這個(gè)臨時(shí)存儲(chǔ)區(qū)叫做緩沖區(qū),通常用一維數(shù)組來(lái)表示。由一個(gè)或若干個(gè)存儲(chǔ)單元組成的緩沖區(qū)叫作“有窮緩沖區(qū)”。下面我們來(lái)分 析一下有窮緩沖的生產(chǎn)者和消費(fèi)者的例子。生產(chǎn)者緩沖池消費(fèi)者放入產(chǎn)品獲取緩沖區(qū)情況取出產(chǎn)品獲取緩沖區(qū)情況原理圖假設(shè)有多個(gè)生產(chǎn)者和多個(gè)消費(fèi)者,它們共享一個(gè)具有n個(gè)存儲(chǔ)單元的有窮緩沖區(qū)Buffer(0n-1),這 是一個(gè)環(huán)形隊(duì)列。其隊(duì)尾指針Rear指向當(dāng)前信息應(yīng)存放的位置(BufferRear),隊(duì)首指針Front指向當(dāng)前 取出信息的位置(Bufferfront)。生產(chǎn)者進(jìn)程總是把信息存放在BufferRear中,消費(fèi)者進(jìn)程則總是從
4、Buffer Rear中取出信息。如果想使生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程協(xié)調(diào)合作,則必須使它們 遵循如下規(guī)則: 1) 只要緩沖區(qū)有存儲(chǔ)單元,生產(chǎn)者都可往其中存放信息;當(dāng)緩沖區(qū)已滿時(shí),若任意生產(chǎn)者提出寫(xiě)要求,則都必須等待; 2) 只要緩沖區(qū)中有消息可取,消費(fèi)者都可從緩沖區(qū)中取出消息;當(dāng)緩沖區(qū)為空時(shí),若任意消費(fèi)者想取出信息,則必須等待; 3) 生產(chǎn)者們和消費(fèi)者們不能同時(shí)讀、寫(xiě)緩沖區(qū)。開(kāi)始生產(chǎn)者線程開(kāi)始消費(fèi)者線程開(kāi)始是放入產(chǎn)品到緩沖池判斷緩沖池是否滿了判斷緩沖池能否放下新產(chǎn)品否是否是從緩沖池中取出產(chǎn)品判斷緩沖池是否空判斷緩沖池中產(chǎn)品夠不夠取否是否通過(guò)notify()喚醒消費(fèi)者線程,而生產(chǎn)者線程阻塞通過(guò)not
5、ify()喚醒生產(chǎn)者線程,而消費(fèi)者線程阻塞在實(shí)際運(yùn)行中,生產(chǎn)者和消費(fèi)者兩個(gè)線程的最開(kāi)始的運(yùn)行是沒(méi)有先后之分的,兩個(gè)線程處于同時(shí)執(zhí)行的狀態(tài)。流程圖代碼: public class ProducerConsumer public static void main(String args) SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Consumer c = new Consumer(ss); new Thread(p).start(); new Thread(p).start(); new Thread(p).sta
6、rt(); new Thread(c).start(); class WoTou int id; WoTou(int id) this.id = id; public String toString() return "WoTou : " + id; class SyncStack int index = 0; WoTou arrWT = new WoTou6; public synchronized void push(WoTou wt) while(index = arrWT.length) try this.wait(); catch (InterruptedExce
7、ption e) e.printStackTrace(); this.notifyAll(); arrWTindex = wt; index +; public synchronized WoTou pop() while(index = 0) try this.wait(); catch (InterruptedException e) e.printStackTrace(); this.notifyAll(); index-; return arrWTindex; class Producer implements Runnable SyncStack ss = null; Produce
8、r(SyncStack ss) this.ss = ss; public void run() for(int i=0; i<20; i+) WoTou wt = new WoTou(i); ss.push(wt);System.out.println("生產(chǎn)了:" + wt); try Thread.sleep(int)(Math.random() * 200); catch (InterruptedException e) e.printStackTrace(); class Consumer implements Runnable SyncStack ss =
9、null; Consumer(SyncStack ss) this.ss = ss; public void run() for(int i=0; i<20; i+) WoTou wt = ss.pop();System.out.println("消費(fèi)了: " + wt); try Thread.sleep(int)(Math.random() * 1000); catch (InterruptedException e) e.printStackTrace(); 結(jié)果:(隨機(jī)的)生產(chǎn)了:WoTou : 0生產(chǎn)了:WoTou : 0消費(fèi)了: WoTou : 0生產(chǎn)了:
10、WoTou : 1生產(chǎn)了:WoTou : 1生產(chǎn)了:WoTou : 1生產(chǎn)了:WoTou : 2生產(chǎn)了:WoTou : 3消費(fèi)了: WoTou : 2消費(fèi)了: WoTou : 3生產(chǎn)了:WoTou : 4消費(fèi)了: WoTou : 4生產(chǎn)了:WoTou : 5消費(fèi)了: WoTou : 5生產(chǎn)了:WoTou : 6消費(fèi)了: WoTou : 6生產(chǎn)了:WoTou : 2消費(fèi)了: WoTou : 2生產(chǎn)了:WoTou : 3消費(fèi)了: WoTou : 3生產(chǎn)了:WoTou : 4消費(fèi)了: WoTou : 4生產(chǎn)了:WoTou : 5消費(fèi)了: WoTou : 5生產(chǎn)了:WoTou : 6消費(fèi)了: WoTou : 6【實(shí)驗(yàn)結(jié)果或總結(jié)】(對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行相應(yīng)分析,或總結(jié)實(shí)驗(yàn)的心得體會(huì),并提出實(shí)驗(yàn)的改進(jìn)意見(jiàn))經(jīng)過(guò)幾天的努力實(shí)驗(yàn)終于完成,程序能正確運(yùn)行。對(duì)線程的同步與互斥技術(shù)有了比較深刻的了解,生產(chǎn)者消費(fèi)者問(wèn)題是研究多線程程序時(shí)繞不開(kāi)的問(wèn)題,它的描述是有一塊生產(chǎn)者和消費(fèi)者共享的有界緩沖區(qū),生產(chǎn)者往緩沖區(qū)放入產(chǎn)品,消費(fèi)者從緩沖區(qū)取走產(chǎn)品,這個(gè)過(guò)程可以無(wú)休止的執(zhí)行,不能因緩沖區(qū)滿生產(chǎn)者放不進(jìn)產(chǎn)品而終止
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級(jí)下冊(cè)班級(jí)親善大使計(jì)劃
- 機(jī)房設(shè)備老化管理保障措施
- 部編版六年級(jí)上冊(cè)學(xué)生行為規(guī)范與法治教育計(jì)劃
- 2025年幼兒園設(shè)施維修保障計(jì)劃
- 高三數(shù)學(xué)組學(xué)期教學(xué)改革實(shí)施計(jì)劃
- 教科版六年級(jí)科學(xué)下冊(cè)復(fù)習(xí)測(cè)驗(yàn)計(jì)劃
- 二年級(jí)上冊(cè)食品安全教育計(jì)劃
- 小學(xué)英語(yǔ)教師信息化教學(xué)整合計(jì)劃
- 裝配工崗位職責(zé)及供應(yīng)鏈協(xié)作要求
- 復(fù)讀生創(chuàng)新創(chuàng)業(yè)指導(dǎo)計(jì)劃
- 志愿者心理調(diào)適培訓(xùn)(改)
- 運(yùn)輸公司交通安全培訓(xùn)課件
- 2025年陜西省中考數(shù)學(xué)試題(解析版)
- 《康復(fù)治療學(xué)專業(yè)畢業(yè)實(shí)習(xí)》教學(xué)大綱
- 北師大版7年級(jí)數(shù)學(xué)下冊(cè)期末真題專項(xiàng)練習(xí) 03 計(jì)算題(含答案)
- 職業(yè)衛(wèi)生管理制度和操作規(guī)程標(biāo)準(zhǔn)版
- 小學(xué)信息技術(shù)四年級(jí)下冊(cè)教案(全冊(cè))
- 河道保潔船管理制度
- 【增程式電動(dòng)拖拉機(jī)驅(qū)動(dòng)系統(tǒng)總體設(shè)計(jì)方案計(jì)算1900字】
- 2025年重慶市中考物理試卷真題(含標(biāo)準(zhǔn)答案)
- 2025至2030中國(guó)云計(jì)算行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
評(píng)論
0/150
提交評(píng)論