![操作系統(tǒng)通用處理器調度演示程序課程設計報告總結報告_第1頁](http://file4.renrendoc.com/view/aa20dd176045fa3de1febc5557a526ac/aa20dd176045fa3de1febc5557a526ac1.gif)
![操作系統(tǒng)通用處理器調度演示程序課程設計報告總結報告_第2頁](http://file4.renrendoc.com/view/aa20dd176045fa3de1febc5557a526ac/aa20dd176045fa3de1febc5557a526ac2.gif)
![操作系統(tǒng)通用處理器調度演示程序課程設計報告總結報告_第3頁](http://file4.renrendoc.com/view/aa20dd176045fa3de1febc5557a526ac/aa20dd176045fa3de1febc5557a526ac3.gif)
![操作系統(tǒng)通用處理器調度演示程序課程設計報告總結報告_第4頁](http://file4.renrendoc.com/view/aa20dd176045fa3de1febc5557a526ac/aa20dd176045fa3de1febc5557a526ac4.gif)
![操作系統(tǒng)通用處理器調度演示程序課程設計報告總結報告_第5頁](http://file4.renrendoc.com/view/aa20dd176045fa3de1febc5557a526ac/aa20dd176045fa3de1febc5557a526ac5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-.z.**大學信息科學與工程學院《操作系統(tǒng)課程設計》總結報告題目:通用處理器調度演示實驗專業(yè):軟件工程班級:軟件3班、軟件4班**:朱文喆、黃強**:6、1設計時間:2017/6/26-2017/7/7一、課程設計目的操作系統(tǒng)課程設計是軟件工程專業(yè)的主要實踐性教學環(huán)節(jié)。在進行了專業(yè)基礎課和《操作系統(tǒng)》課程的學習基礎上,設計或分析一個實際的操作系統(tǒng)旨在加深對計算機硬件結構和系統(tǒng)軟件的認識,初步掌握操作系統(tǒng)組成模塊和應用接口的使用方法,提高進行工程設計和系統(tǒng)分析的能力,為畢業(yè)設計和以后的工程實踐打下良好的基礎。二、課程設計內容與要求2.1設計目的在多道程序和多任務系統(tǒng)中,系統(tǒng)內同時處于就緒狀態(tài)的進程可能有若干個,也就是能運行的進程數大于處理機個數,為了使系統(tǒng)中的進程有條不紊地工作,必須選用*種調度策略,在一定的時機選擇一個進程占有處理機。要求學生設計一個模擬處理機調度算法,以鞏固和加深處理機調度的概念。2.2設計要求(多道、單處理機)1)進程調度算法包括:時間片輪轉算法、先來先服務算法、短作業(yè)優(yōu)先算法、靜態(tài)優(yōu)先權優(yōu)先調度算法、高響應比調度算法。2)每一個進程有一個PCB,其內容可以根據具體情況設定。3)進程數、進入內存時間、要求服務時間、作業(yè)大小、優(yōu)先級等均可以在界面上設定。4)可讀取樣例數據(要求存放在外部文件中)進行進程數、進入內存時間、時間片長度、作業(yè)大小、進程優(yōu)先級的初始化。5)可以在運行中顯示各進程的狀態(tài):就緒、執(zhí)行(由于不要求設置互斥資源與進程間同步關系,故只有兩種狀態(tài))。6)采用可視化界面,可在進程調度過程中隨時暫停調度,查看當前進程的狀態(tài)以及相應的阻塞隊列。7)有能比較的功能,可比較同一組數據在不同調度算法下的平均周轉時間。8)具有一定的數據容錯性。三、功能模擬系統(tǒng)分析與設計3.1系統(tǒng)分析本課程設計的目的就是模擬一種通用處理器的五種調度算法來實現進程調度的過程,加深對進程調度的理解,輸出采用采用可視化界面,可在進程調度過程中隨時暫停調度,查看當前進程的狀態(tài)以及相應的阻塞隊列,進程控制塊(PCB)是這個程序設計的核心,PCB包含了到達時間,運行時間,優(yōu)先級等關鍵數據,要求可以用五種調度算法演示,我們可以用策略模式把五個算法打包通過一個接口連接CPU,實現算法和CPU的分離,算法有5五種,分別實現不同的調度演示(時間片輪轉算法、先來先服務算法、短作業(yè)優(yōu)先算法、靜態(tài)優(yōu)先權優(yōu)先調度算法、高響應比調度算法)我們采用MVC(模型-視圖-控制器)的設計方法,輸入方式的采用界面直接輸入和文件讀取輸入兩種方法,視圖主要展示進程的進程名、到達時間、運行時間、優(yōu)先級、時間片、響應時間、結束時間、周轉時間,表示方法我們采用Java圖形界面輸出,動態(tài)演示調度算法的實現過程,以加深對操作系統(tǒng)進程調度的理解。3.2系統(tǒng)設計設計思想圖3-1進程控制塊(PCB)圖3-2進程狀態(tài)圖1、每個進程有一個進程控制塊(PCB)表示。進程控制塊可以包含如下信息:進程名、優(yōu)先級數、到達時間、需要運行時間等等。2、進程的信息,包括到達時間,優(yōu)先數及需要的運行時間等都是事先人為地指定。3、每個進程的狀態(tài)可以是就緒W(Wait)、運行R(Run)、或完成F(Finish)三種狀態(tài)之一。算法分析先"先服""度算法FCFS:FirsteFirstServe。"是把"前"于就""列之首的那""程"度到運行""。也就",它只考""程"入就""列的先后,而不考"它的下一"CPU周期的"短及其他因素。FCFS算法""易行,但性能"不大好。最短短作"("程)優(yōu)先"度算法SJF:ShortestJobFirst。""“短"程優(yōu)先”SPN(ShortestProcessNe*t);"是"FCFS算法的改",其目"是"少平均周"""。高優(yōu)先"優(yōu)先"度算法HPF:HighestPriorityFirst。多""列算法的改",平衡各"程"""""的要求。適用于作""度和"程"度,可分成"先式和非"先式。(四)最高""比優(yōu)先"度算法HRN:HighestResponseRatioNe*t。最高響應比優(yōu)先法(HRN,HighestResponse_ratioNe*t)是"FCFS方式和SJF方式的一種"合平衡。FCFS方式只考"每"作"的等待""而未考""行""的"短,而SJF方式只考""行""而未考"等待""的"短。因此,""種"度算法在*些極端情"下"""*些不便。HRN"度策略同"考"每"作"的等待"""短和估"需要的"行"""短,"中"出響應比最高的作"投入"行。(五)基于""片的""度算法(RR)。"系"中所有的就""程按照FCFS原",排成一"隊列。每次"度""CPU分派""首"程,"其"行一"""片。""片的"度"幾"ms到幾百ms。在一"""片"束","生時鐘中斷。"度程序據此"停"前"程的"行,"其送到就"隊列的末尾,并通"上下文切換"行"前的"首"程。"程可以未使用完一"""片,就出"CPU(如阻塞)。模"""1)"入模"能""足"入"程基本信息的功能,"可能提供友好的交互界面。"用"很好的提示,使用"能"方便的操作。可"取"例"據(要求存放在外部文件中)"行"程"、"入"存""、""片"度、作"大小、"程優(yōu)先"的初始化。算法模"可以根據需求""五種算法中的一種"行:(一)先"先服""度算法FCFS:FirsteFirstServe。1.基本思想:按作"("程)到"""先后"序依次使用CPU。2.適用于作"/"程"度。3.非"占"度方式。4.優(yōu)缺"。優(yōu)":""""。缺":未考""程的優(yōu)先"或"急性,不利于短作"("程)的"行,利于CPU繁忙型作",而不利于I/O繁忙型作"。很少""使用,常與其他算法"合使用("助算法)。(二)短作"("程)優(yōu)先"度算法SJF:ShortestJobFirst?;舅枷耄?"就"(后")"列中估""行""最短的"程(作")投入"行。2.適用于作"/"程"度。3.非"占"度方式——>最短剩余""優(yōu)先算法或"占"度方式。4.優(yōu)缺"。優(yōu)":有效"短作"的平均周""","而提高系"吞吐量。缺":不利于"作"和"迫作"的"行("法"足公平性,估"有主"性)(三)高優(yōu)先"優(yōu)先"度算法HPF:HighestPriorityFirst。引入:"照""迫型作"優(yōu)先"理,!§急事急"!‥,!§重要事先"!‥。1.基本思想:""優(yōu)先"最高的"程或作"投入"行。2.適用于作"/"程"度。3."度方式。非"占"度方式——批"理系":!§等你打完我再打!‥。"占"度方式——""系":!§不等你打完"","""筒就打!‥。4.優(yōu)先"(優(yōu)先"):即優(yōu)先",是由系"或用"按*種原"指定的,一般用整"表示。""優(yōu)先" !§一定"身!‥是在"建"程/作""確定的,且在整""行期"保持不"。優(yōu)先"的確定依據:用"要求、"程/作""型、""源的要求不同系"有不同的確定原",及表求方法。優(yōu)":""易行,系"""小。缺":不"精確,可能出"*些低優(yōu)先"的"程永不能被"行。(2)""優(yōu)先"是在"建"程/作"""予的優(yōu)先",可"""程的推"而改"。"定/""改"因素:等待""、已使用"理機的""、其他"源的使用情"等。特":可防止低優(yōu)先"的"程/作""""得不到"度。(四)最高""比優(yōu)先"度算法HRN:HighestResponseRatioNe*t。引入:""上是一種""優(yōu)先""度算法。1.""比R=""""/要求服""" =(等待""+"行"")/"行"" =1+(等待""/"行"")2.基本思想:同"兼"每"作"等待""和"行"""方面因素,""""比最高的作"/"程投入"行。3.優(yōu)缺"。優(yōu)":利于短作",利于"作"。缺":系"""大。(五)基于""片的""度算法(RR)1.基本思想:""法(RoundRobin)是"每""程在就"隊列中的等待""與享受服"的""成正比例。2.""片大小的確定:固定""片可"""片系"""""正比就""程""反比CPU能力"程切"""q ""片t"q/t不大于*"值3.""片t大小的""影":太大,"——>FCFS;太小,"系"""增大("繁切")。t=R/Nma* R""""",Nma*允"的最大就""。3)"出模"根據""的"度算法"出"程的"""","束"",周""",平均周""",采用可"化界面,可在"程"度"程中"""停"度,查看"前"程的""以及相"的阻塞"列。3.2.4"據"構"明ADT"明:ADTADT-Name{
Data://"據"明"據元素之""""系的描述Operations://操作"明Operation1://操作1,它通??捎肅或C﹢﹢的函"原型"描述Input:""入"據的"明Preconditions:"行本操作前系"""足的""http://可看作初始"件Process:""據"行的操作Output:"返回"據的"明Postconditions:"行本操作后系"的""http://"系""可看作*""據"構Operation2://操作2
……}//ADT
程序"":"3-3程序""算法流程""理器"度程序活"":在采用多道程序""的系"中,往往有若干""程同""于就"""。"就""""程""大于"理器"",就必"依照*種策略""定哪些"程優(yōu)先占用"理器。本""模"在""理器情"下"理器"度,"助"生加深了解"理器"度的工作。"3-4"理器"度程序活""1.先"先服":"度算法(FCFS:FirsteFirstServe)。"3-5先到先服"算法活""2.短作"("程)優(yōu)先"度算法(SJF:ShortestJobFirst)。"3-6最短作"優(yōu)先算法活""3.高優(yōu)先"優(yōu)先"度算法(HPF:HighestPriorityFirst)。"3-7優(yōu)先"度算法活""4.最高""比優(yōu)先"度算法(HRN:HighestResponseRatioNe*t)。"3-8最高""比"度算法活""5.基于""片的""度算法(RR)。"3-9""片""法算法活""四、系"""與""分析4.1系"""4.1.1"入模"(1)""在界面上直接手""入。(2)""在文件中直接"取。算法模"""可以在界面上""需要的算法(""片""算法、先"先服"算法、短作"優(yōu)先算法、""優(yōu)先"優(yōu)先"度算法、高""比"度算法)"行。4.1.3"出模"可以根據""的算法,得到正確的"出"果。4.2""用例表4-1""用例表"程名到""""行""優(yōu)先"""片P10553P21113P31433P42333P542234.3"""果先到先服"算法"4-1先到先服"算法"""果最短作"優(yōu)先算法"4-2最短作"優(yōu)先算法"""果4.3.3""優(yōu)先"算法"4-3優(yōu)先"算法"""果最高""比算法"4-4最高""比算法"""果4.3.5""片""法"4-5""片""法"""果4.4手""算"果"比4.4.1""優(yōu)先"P1p3p4p5p20710151920先"先服"P1p2p3p4p5078111620最短作"優(yōu)先P1p2p3p5p4078111520最高""比P1p2p3p4p50781116204.4.5""片算法P1p2p3p4p1p5p4p1p50347101316181920"4-6手""算截"1"4-7手""算截"24.5""表4-2""表"""明""名"通用"理器"度演示""""目的""程序"于模""理器"度算法的"理流程""技""元""""方法黑盒""法""用例"""容"取"據-程序"行-"出"果""步""入"取"據文件的路"名分"""不同的"度算法"行"出"果"""據src/data.t*t""片""算法、先"先服"算法、短作"優(yōu)先算法、""優(yōu)先"優(yōu)先"度算法、高""比"度算法"程名到""""行""優(yōu)先"""片P1 0 7 5 3P2 1 1 1 3P3 1 3 4 3P4 2 5 3 3P5 4 4 2 3"期"果正常"入"據算法正常"行"出""""、"束""、平均周""""""果與"期相符與"期相符與"期相符4.6""分析在我""程序功能已"基本""并且正常的情"之后,"在主要完成"據的"",在"""程中,主要""老""的"據,我先手"的分""五種算法算出答案,再分""入程序"行,與手"算出的"果"行反復"比,在""中我"""了""片""法的算法有"小小的"",與"期的"果不符合,在"行了反復""之后得到了正確的"果,程序正確。用"手"1."入文件包"4-8"入程序包2."行"入"據(手""入或者文件"?。?4-9"入"據3."""度算法""Start"始"行,可以""pause""停,""甘特"可以查看"程甘特""4-10算法""4."出"果"4-11"果"出六、程序清"FCFS.javapackagelab1;importjava.util.Vector;publicclassFCFSe*tendsDispatchMethod{OverridepublicPCBgetNe*t(Vector<PCB>q){//TODOAuto-generatedmethodstubPCBp;if(q.size()>0)p=q.remove(0);elsep=null;returnp; }Overridepublicinthandle(PCBp,Vector<PCB>q){//TODOAuto-generatedmethodstubinttime=p.getServeTime();try{Thread.sleep(time*1000);System.out.println("sleepfor"+time); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }p.setTime(p.getEnterTime(),0,p.getPriority());returntime; }}SJF.javapackagelab1;importjava.util.Vector;publicclassSJFe*tendsDispatchMethod{OverridepublicPCBgetNe*t(Vector<PCB>q){//TODOAuto-generatedmethodstubif(q.size()==0)returnnull;intmin=0;for(inti=0;i<q.size();i++){if(q.get(i).getServeTime()<q.get(min).getServeTime())min=i; }PCBtemp=q.remove(min);returntemp; }Overridepublicinthandle(PCBp,Vector<PCB>q){//TODOAuto-generatedmethodstubinttime=p.getServeTime();try{Thread.sleep(time*1000); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }p.setTime(p.getEnterTime(),0,p.getPriority());returntime; }}StaticPriority.javapackagelab1;importjava.util.Vector;publicclassStaticPrioritye*tendsDispatchMethod{OverridepublicPCBgetNe*t(Vector<PCB>q){//TODOAuto-generatedmethodstubPCBp;if(q.size()==0)p=null;else{intma*=0;for(inti=0;i<q.size();i++){if(q.get(i).getPriority()>q.get(ma*).getPriority())ma*=i; }System.out.println("ma*:"+ma*);p=q.get(ma*);q.remove(ma*); }returnp; }Overridepublicinthandle(PCBp,Vector<PCB>q){//TODOAuto-generatedmethodstubinttime=p.getServeTime();try{Thread.sleep(time*1000); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }p.setTime(p.getEnterTime(),0,p.getPriority());returntime; }}HRRF.javapackagelab1;importjava.util.Vector;publicclassHRRFe*tendsDispatchMethod{publicvoidcalculate(Vector<PCB>q){for(inti=0;i<q.size();i++){PCBtemp=q.get(i);temp.setPriority((this.getTime()-temp.getEnterTime()+0.0)/temp.getServeTime()+1);System.out.println("time:"+this.getTime()+"calculatepriority:"+((double)(this.getTime()-temp.getEnterTime()+0.0)/temp.getServeTime()+1));temp.refresh(); } }OverridepublicPCBgetNe*t(Vector<PCB>q){calculate(q);//TODOAuto-generatedmethodstubif(q.size()==0)returnnull;intma*=0;for(inti=0;i<q.size();i++){if(q.get(i).getPriority()>q.get(ma*).getPriority())ma*=i; }PCBtemp=q.get(ma*);q.remove(ma*);returntemp; }Overridepublicinthandle(PCBp,Vector<PCB>q){//TODOAuto-generatedmethodstubinttime=p.getServeTime();try{Thread.sleep(time*1000); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }p.setTime(p.getEnterTime(),0,p.getPriority());returntime; }}Timeslicepackagelab1;importjava.util.Vector;publicclassTimeSlicee*tendsDispatchMethod{intslice=1;publicTimeSlice(){this.needConfig=true; }voidsetSlice(intslice){this.slice=slice; }OverridepublicPCBgetNe*t(Vector<PCB>q){//TODOAuto-generatedmethodstubPCBp;if(q.size()>0)p=q.remove(0);elsep=null;returnp; }publicvoidsetConfig(Objecto){this.slice=((MainUI)o).getSlice(); }Overridepublicinthandle(PCBp,Vector<PCB>q){//TODOAuto-generatedmethodstubtry{Thread.sleep(slice); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }if(p.getServeTime()-slice>0){try{Thread.sleep(slice*1000); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }p.setTime(p.getEnterTime(),p.getServeTime()-slice,p.getPriority());q.addElement(p);returnslice; }else{try{Thread.sleep(p.getServeTime()*1000); }catch(InterruptedE*ceptione){//TODOAuto-generatedcatchblocke.printStackTrace(); }inttime=p.getServeTime();p.setTime(p.getEnterTime(),0,p.getPriority());returntime; } }}七、體"與自我"價在"次"程""中,""主要""文"的"",和"解PPT的制作,包括前期的""文"和PPT,后期的"""告,"有就是系"的""工作,,朱文"""系"的""和代"的""部分,在深入地"行程序的""和,""工作,我""""期中""的""模式有了新的"",在本次的程序"""中,我""用了MVC【Model
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源車輛制造合作開發(fā)合同范本
- 2025春期國家開放大學《生產與運作管理》形考任務1-4答案
- 2025年度印尼動力煤期貨交易合同規(guī)范
- 2025年度智慧城市建設項目合同協議書
- 2025年度互聯網金融服務公眾號產品推廣與用戶拓展合同
- 電商物流智能配送模式的探索
- 現代辦公空間中的家具設計與科技創(chuàng)新
- 場景恐懼實驗分析系統(tǒng)使用手冊
- 2025年度公司股東借款合同稅務處理及合規(guī)性
- 2025年度乳膠漆施工項目進度跟蹤與報告合同
- 中考物理復習備考策略
- 博士后進站申請書博士后進站申請書八篇
- 小報:人工智能科技科學小報手抄報電子小報word小報
- GB/T 41509-2022綠色制造干式切削工藝性能評價規(guī)范
- 全面介紹現貨中遠期交易
- 公安系防暴安全03安檢
- 孫權勸學教案全國一等獎教學設計
- 企業(yè)生產現場6S管理知識培訓課件
- 五年級下冊數學課件 第10課時 練習課 蘇教版(共11張PPT)
- 電梯口包邊施工方案正式
- 三年級道德與法治下冊我是獨特的
評論
0/150
提交評論