操作系統(tǒng)進(jìn)程同步和互斥的試驗(yàn)報(bào)告_第1頁(yè)
操作系統(tǒng)進(jìn)程同步和互斥的試驗(yàn)報(bào)告_第2頁(yè)
操作系統(tǒng)進(jìn)程同步和互斥的試驗(yàn)報(bào)告_第3頁(yè)
操作系統(tǒng)進(jìn)程同步和互斥的試驗(yàn)報(bào)告_第4頁(yè)
操作系統(tǒng)進(jìn)程同步和互斥的試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、v1.0可編輯可修改湖南農(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)類型【實(shí)驗(yàn)?zāi)康?、要求】?)通過(guò)編寫程序?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)程(線程)的控制原語(yǔ)或系統(tǒng)調(diào)用的使用?!緦?shí)驗(yàn)內(nèi)容】在WindowsXP

2、操作系統(tǒng)下,使用java等編程語(yǔ)言,采用進(jìn)程(線程)同步和互斥的技術(shù)編寫程序?qū)崿F(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題。【實(shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)裝有的PC電腦一臺(tái)v1.0可編輯可修改【實(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)者所產(chǎn)生的信息,平滑進(jìn)程間由于速度不確定所帶來(lái)的問(wèn)題

3、。這個(gè)臨時(shí)存儲(chǔ)區(qū)叫做緩沖區(qū),通常用一維數(shù)組來(lái)表示。由一個(gè)或若干個(gè)存儲(chǔ)單元組成的緩沖區(qū)叫作“有窮緩沖區(qū)”。下面我們來(lái)分析一下有窮緩沖的生產(chǎn)者和消費(fèi)者的例子。原理圖假設(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)程則總是從BufferRear中取出信息。如果想使生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程協(xié)調(diào)合作,則必須使它們遵循如下規(guī)則:1)只要緩沖區(qū)有存儲(chǔ)單元

4、,生產(chǎn)者都可往其中存放信息;當(dāng)緩沖區(qū)已滿時(shí),若任意生產(chǎn)者提出寫要求,則都必須等待;2)只要緩沖區(qū)中有消息可取,消費(fèi)者都可從緩沖區(qū)中取出消息;當(dāng)緩沖區(qū)為空時(shí),若任意消費(fèi)者想取出信息,則必須等待;3)生產(chǎn)者們和消費(fèi)者們不能同時(shí)讀、寫緩沖區(qū)。v1.0可編輯可修改流程圖代碼:publicclassProducerconsumerpublicstaticvoidmain(String口args)SyncStackss=newSyncStack();Producerp=newProducer(ss);Consumerc=newConsumer(ss);newThread(p).start();newThr

5、ead(p).start();newThread(p).start();newThread(c).start();v1.0可編輯可修改)classWoTouintid;WoTou(intid)=id;)publicStringtoString()returnWoTou:+id;)classSyncStackintindex=0;WoTouarrWT=newWoTou6;publicsynchronizedvoidpush(WoTouwt)while(index=try();catch(InterruptedExceptione)();();arrWTindex=wt;index+;v1.0可編

6、輯可修改publicsynchronizedWoToupop()while(index=0)try();catch(InterruptedExceptione)();();index-;returnarrWTindex;classProducerimplementsRunnableSyncStackss=null;Producer(SyncStackss)=ss;publicvoidrun()for(inti=0;i20;i+)WoTouwt=newWoTou(i);(wt);生產(chǎn)了:+wt);try(int)()*200);v1.0可編輯可修改catch(InterruptedExcepti

7、one)();classConsumerimplementsRunnableSyncStackss=null;Consumer(SyncStackss)=ss;publicvoidrun()for(inti=0;i20;i+)WoTouwt=();消費(fèi)了:+wt);try(int)()*1000);catch(InterruptedExceptione)();結(jié)果:(隨機(jī)的)生產(chǎn)了:WoTou:0生產(chǎn)了:消費(fèi)了生產(chǎn)了:生產(chǎn)了:生產(chǎn)了:生產(chǎn)了:生產(chǎn)了:消費(fèi)了消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了生產(chǎn)了:消費(fèi)了v1.0可編輯可修改W

8、oTou:0WoTou:0WoTou:1WoTou:1WoTou:1WoTou:2WoTou:3WoTou:2WoTou:3WoTou:4WoTou:4WoTou:5WoTou:5WoTou:6WoTou:6WoTou:2WoTou:2WoTou:3WoTou:3WoTou:4WoTou:4WoTou:5WoTou:5WoTou:6WoTou: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)意見)經(jīng)過(guò)幾天的努力實(shí)驗(yàn)終于完成,程序能正確運(yùn)行。對(duì)線程的同步與互斥技術(shù)有了比較深刻的了解,生v1.0可編輯可修改產(chǎn)者消費(fèi)者問(wèn)題是研究多線程程序時(shí)繞不開的問(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)品而終止,也不能因緩沖區(qū)空消費(fèi)者無(wú)產(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論