資源描述:
《實(shí)現(xiàn)模擬進(jìn)程調(diào)度的算法:時(shí)間片輪轉(zhuǎn)及短進(jìn)程優(yōu)先》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、操作系統(tǒng)課程設(shè)計(jì)報(bào)告時(shí)間:2011-12-26~2012-1-6地點(diǎn):信息技術(shù)實(shí)驗(yàn)中心計(jì)算機(jī)科學(xué)與技術(shù)(或軟件工程)專業(yè)xxx級xxx班xx號xxxxxxxx目錄一課程設(shè)計(jì)的目的和意義………………………………………………………二進(jìn)程調(diào)度算法模擬……………………………………………………………1設(shè)計(jì)目的………………………………………………………………………2設(shè)計(jì)要求………………………………………………………………………3時(shí)間片輪轉(zhuǎn)算法模擬…………………………………………………………4先來先服務(wù)算法模擬…………………………………………………………三主存空間的回收與分配………………
2、………………………………………1設(shè)計(jì)目的………………………………………………………………………2設(shè)計(jì)要求………………………………………………………………………3模擬算法的實(shí)現(xiàn)………………………………………………………………四模擬DOS文件的建立和使用…………………………………………………1設(shè)計(jì)目的………………………………………………………………………2設(shè)計(jì)要求………………………………………………………………………3模擬算法的實(shí)現(xiàn)………………………………………………………………五磁盤調(diào)度………………………………………………………………………1設(shè)計(jì)目的…………………………………
3、……………………………………2設(shè)計(jì)要求………………………………………………………………………3模擬算法的實(shí)現(xiàn)………………………………………………………………六總結(jié)……………………………………………………………………………一、課程設(shè)計(jì)的目的和意義本次操作系統(tǒng)課程設(shè)計(jì)的主要任務(wù)是進(jìn)行系統(tǒng)級的程序設(shè)計(jì)。本課程設(shè)計(jì)是操作系統(tǒng)原理課程的延伸。通過該課程設(shè)計(jì),使學(xué)生更好地掌握操作系統(tǒng)各部分結(jié)構(gòu)、實(shí)現(xiàn)機(jī)理和各種典型算法,加深對操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)思路的理解,培養(yǎng)學(xué)生的系統(tǒng)設(shè)計(jì)和動(dòng)手能力,學(xué)會分析和編寫程序。課程設(shè)計(jì)的實(shí)施將使學(xué)生在以下幾個(gè)方面有所收獲:(1)加深對操作系統(tǒng)原理的理解,提高
4、綜合運(yùn)用所學(xué)知識的能力;(2)培養(yǎng)學(xué)生自主查閱參考資料的習(xí)慣,增強(qiáng)獨(dú)立思考和解決問題的能力;(3)通過課程設(shè)計(jì),培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和協(xié)作精神。二、進(jìn)程調(diào)度算法模擬1、設(shè)計(jì)目的(1)要求學(xué)生設(shè)計(jì)并實(shí)現(xiàn)模擬進(jìn)程調(diào)度的算法:時(shí)間片輪轉(zhuǎn)及短進(jìn)程優(yōu)先。(2)理解進(jìn)程控制塊的結(jié)構(gòu)。(3)理解進(jìn)程運(yùn)行的并發(fā)性。(4)掌握進(jìn)程調(diào)度算法。2、設(shè)計(jì)要求在多道程序運(yùn)行環(huán)境下,進(jìn)程數(shù)目一般多于處理機(jī)數(shù)目,使得進(jìn)程要通過競爭來使用處理機(jī)。這就要求系統(tǒng)能按某種算法,動(dòng)態(tài)地把處理機(jī)分配給就緒隊(duì)列中的一個(gè)進(jìn)程,使之運(yùn)行,分配處理機(jī)的任務(wù)是由進(jìn)程調(diào)度程序完成的。一個(gè)進(jìn)程被創(chuàng)建后,系統(tǒng)為了便于對進(jìn)程進(jìn)行管理,
5、將系統(tǒng)中的所有進(jìn)程按其狀態(tài),將其組織成不同的進(jìn)程隊(duì)列。于是系統(tǒng)中有運(yùn)行進(jìn)程隊(duì)列、就緒隊(duì)列和各種事件的進(jìn)程等待隊(duì)列。進(jìn)程調(diào)度的功能就是從就緒隊(duì)列中挑選一個(gè)進(jìn)程到處理機(jī)上運(yùn)行。進(jìn)程調(diào)度的算法有多種,常用的有優(yōu)先級調(diào)度算法、先來先服務(wù)算法、時(shí)間片輪轉(zhuǎn)算法。3、時(shí)間片輪轉(zhuǎn)算法模擬(1)時(shí)間片算法概述時(shí)間片輪轉(zhuǎn)調(diào)度是一種最古老,最簡單,最公平且使用最廣的算法。每個(gè)進(jìn)程被分配一個(gè)時(shí)間段,稱作它的時(shí)間片,即該進(jìn)程允許運(yùn)行的時(shí)間。如果在時(shí)間片結(jié)束時(shí)進(jìn)程還在運(yùn)行,則CPU將被剝奪并分配給另一個(gè)進(jìn)程。如果進(jìn)程在時(shí)間片結(jié)束前阻塞或結(jié)束,則CPU當(dāng)即進(jìn)行切換。調(diào)度程序所要做的就是維護(hù)一張就緒進(jìn)程列
6、表,當(dāng)進(jìn)程用完它的時(shí)間片后,它被移到隊(duì)列的末尾。(2)時(shí)間片算法流程圖圖1-1時(shí)間片算法流程圖(3)時(shí)間片算法模擬設(shè)計(jì)要求?進(jìn)程的調(diào)度采用時(shí)間片輪轉(zhuǎn)算法。?設(shè)計(jì)三個(gè)鏈隊(duì)列,分別用來表示運(yùn)行隊(duì)列、就緒隊(duì)列和完成隊(duì)列。?用戶輸入進(jìn)程標(biāo)識符以及進(jìn)程所需的時(shí)間申請空間存放進(jìn)程PCB信息。?輸出的格式和上面的運(yùn)行結(jié)果分析中的格式相同。時(shí)間片輪轉(zhuǎn)調(diào)度,具體做法是調(diào)度程序每次把CPU分配給就緒隊(duì)列首進(jìn)程使用一個(gè)時(shí)間片。當(dāng)這個(gè)時(shí)間片結(jié)束時(shí),就強(qiáng)迫一個(gè)進(jìn)程讓出處理器,讓它排列到就緒隊(duì)列的尾部,等候下一輪調(diào)度。實(shí)現(xiàn)這種調(diào)度要使用一個(gè)間隔時(shí)鐘。當(dāng)一個(gè)進(jìn)程開始運(yùn)行時(shí),就將時(shí)間片的值置入間隔時(shí)鐘內(nèi),
7、當(dāng)發(fā)生間隔時(shí)鐘中斷時(shí),就表明該進(jìn)程連續(xù)運(yùn)行的時(shí)間已超過一個(gè)規(guī)定的時(shí)間片。此時(shí),中斷處理程序就通知處理器調(diào)度進(jìn)行處理器的切換工作。(4)算法模擬程序的關(guān)鍵代碼while(!threads.isEmpty()){if(threads.get(0).getPCB().getTimed()<=threads.get(0).getPCB().getTimePian()){threads.get(0).run();finished.add(threads.get(0));threads.remove(0);}else{thre