2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  一.課程設(shè)計的目的2</p><p>  二.課程設(shè)計的內(nèi)容及要求2</p><p><b>  三.實現(xiàn)原理2</b></p><p>  四.關(guān)鍵算法實現(xiàn)流程圖3</p><p>  4.1 多級反

2、饋隊列調(diào)度算法實現(xiàn)流程圖3</p><p>  4.2 文件詳細(xì)3</p><p>  五.軟件運(yùn)行環(huán)境及限制4</p><p>  六.結(jié)果輸出及分析4</p><p>  6.0.1 初始界面4</p><p>  6.1 主程序界面5</p><p>  6.2 執(zhí)行界面

3、6</p><p>  6.3 執(zhí)行完成7</p><p>  6.4 其他功能8</p><p>  6.5 算法結(jié)果說明9</p><p>  6.6 算法核心代碼9</p><p><b>  七.心得體會11</b></p><p><b&

4、gt;  八.參考文獻(xiàn)11</b></p><p><b>  課程設(shè)計的目的</b></p><p>  本課程設(shè)計是學(xué)生學(xué)習(xí)完《計算機(jī)操作系統(tǒng)(第三版)》課程后,進(jìn)行的一次全面的綜合訓(xùn)練,通過課程設(shè)計,讓學(xué)生更好地掌握操作系統(tǒng)的原理及實現(xiàn)方法,加深對操作系統(tǒng)基礎(chǔ)理論和重要算法的理解,加強(qiáng)學(xué)生的動手能力。</p><p>  二

5、.課程設(shè)計的內(nèi)容及要求</p><p>  設(shè)計一個虛擬處理機(jī),編程序演示堆積反饋隊列調(diào)度算法的具體實現(xiàn)過程</p><p><b>  三.實現(xiàn)原理</b></p><p>  該程序基于計算機(jī)調(diào)度算法中的多級反饋隊列算法,使用JAVA語言描述,通過線程和對象的調(diào)用來實現(xiàn)該算法的演示。</p><p>  在多級反饋隊

6、列算法中,當(dāng)一個新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊列的末尾,按FCFS原則排隊等待調(diào)度。當(dāng)輪到該進(jìn)程執(zhí)行時,如它能在該時間片內(nèi)完成,變可準(zhǔn)備撤離系統(tǒng);如果它在一個時間片結(jié)束時尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二隊列的末尾,在同樣地按FCFS原則等待調(diào)度執(zhí)行;如果它在第二個隊列中運(yùn)行一個時間片后仍未完成,在一次將它放入第三隊列,如此下去,當(dāng)一個長作業(yè)(進(jìn)程)從第一隊列依次降到第n隊列后,在第n隊列中便采取按時間片轉(zhuǎn)輪的方式運(yùn)行。<

7、/p><p>  僅當(dāng)?shù)谝魂犃锌臻e時,調(diào)度程序才調(diào)度第二隊列中的進(jìn)程運(yùn)行;僅當(dāng)?shù)?~(i-1)隊列均為空時,才會調(diào)度第i隊列中的進(jìn)程運(yùn)行。如果處理機(jī)正常第i隊列中的某個進(jìn)程服務(wù)時,又有新進(jìn)程進(jìn)入優(yōu)先權(quán)較高的隊列(第1~(i-1)中的任何一個隊列),此時新進(jìn)程將搶占正在運(yùn)行進(jìn)程的處理機(jī),即由調(diào)度程序把正在運(yùn)行的進(jìn)程返回第i隊列的末尾,把處理機(jī)分配給新到的高優(yōu)先權(quán)進(jìn)程。</p><p>  四.關(guān)

8、鍵算法實現(xiàn)流程圖</p><p>  4.1 多級反饋隊列調(diào)度算法實現(xiàn)流程圖</p><p><b>  4.2 文件詳細(xì)</b></p><p>  Work.java:用于封裝每個進(jìn)程的Java Bean,將每個進(jìn)程的信息封裝到對象里面便于使用。</p><p>  SeqQueue.java:用戶封裝每個隊列的

9、Java Bean,將每個隊列的信息封裝到對象里面便于使用。</p><p>  Arithmetic.java:核心類文件,用于算法的計算和界面的控制。</p><p>  View.java:用于構(gòu)建界面的類文件,用于向用戶演示整個算法運(yùn)行的過程,以及與用戶的交互操作。</p><p>  ControlView.java:用于構(gòu)建控制臺的類文件,用于與用戶交互

10、以及控制程序的進(jìn)程等。</p><p>  五.軟件運(yùn)行環(huán)境及限制</p><p>  由于本程序是由java程序編寫,具有跨平臺的性能。在具有java支持的環(huán)境中皆能運(yùn)行,建議在windows2003 server及windows XP系統(tǒng)下運(yùn)行。</p><p>  環(huán)境要求:JDK1.6版本及其以上</p><p><b> 

11、 六.結(jié)果輸出及分析</b></p><p>  6.0.1 初始界面</p><p>  初始化程序需要的空間等</p><p><b>  6.1 主程序界面</b></p><p>  左上方顯示隊列中排隊的進(jìn)程,左下為執(zhí)行完成的情況</p><p>  右上為執(zhí)行信息,右下方

12、為正在處理的進(jìn)程</p><p>  用戶可以對程序進(jìn)行操作</p><p><b>  算法實現(xiàn)思想</b></p><p><b>  6.2 執(zhí)行界面</b></p><p>  及時地添加進(jìn)程并按多級反饋隊列調(diào)度算法來執(zhí)行</p><p><b>  6.

13、3 執(zhí)行完成</b></p><p>  執(zhí)行完成后顯示出所有的進(jìn)程的執(zhí)行情況</p><p>  用戶可以通過控制臺來重新執(zhí)行</p><p><b>  6.4 其他功能</b></p><p><b>  換膚功能</b></p><p>  6.5

14、算法結(jié)果說明</p><p>  進(jìn)程運(yùn)行時,將啟動兩個線程,分別用來添加任務(wù)和執(zhí)行任務(wù),在任務(wù)執(zhí)行過程中,不斷的更新當(dāng)前的執(zhí)行情況,并接受用戶的操作。</p><p>  6.6 算法核心代碼</p><p>  算法核心代碼為Arithmetic.java,代碼如下:</p><p>  class delThread extends

15、Thread{//執(zhí)行進(jìn)程</p><p>  @SuppressWarnings("deprecation")</p><p>  public void run(){</p><p>  while(true){</p><p>  if(isStop){</p><p>  View.setS

16、q(sq);//更新面板數(shù)據(jù)</p><p>  view.showWork();</p><p>  view.showNewWork(-3, null);//刷新正在處理的面板</p><p>  delThreadFlag=true;</p><p>  delThread.this.stop();</p><p&g

17、t;  }else if(!sq[0].isEmpty()){</p><p>  doIn(0);//執(zhí)行第一個隊列</p><p>  }else if(!sq[1].isEmpty()){</p><p>  doIn(1);//執(zhí)行第二個隊列</p><p>  }else if(!sq[2].isEmpty()){</p>

18、;<p>  doIn(2);//執(zhí)行第三個隊列</p><p>  }else if(!sq[3].isEmpty()){</p><p>  doIn(3);//執(zhí)行第四個隊列</p><p>  }else if(addThreadFlag){//添加進(jìn)程關(guān)閉且所有隊列為空時自動關(guān)閉</p><p>  view.show

19、NewWork(-2, null);//刷新正在處理的面板</p><p>  delThreadFlag=true;</p><p>  delThread.this.stop();</p><p><b>  }</b></p><p><b>  }</b></p><p&

20、gt;<b>  }</b></p><p>  public void doIn(int sqnum){//執(zhí)行某個隊列</p><p>  doflag=sqnum;//標(biāo)志正常處理第sqnum隊列</p><p><b>  try {</b></p><p>  work=sq[sqnum]

21、.delete();//取出隊首元素</p><p>  view.addMes("<font size='3'>執(zhí)行隊列"+(sqnum+1)+"中的'"+work.getName()+"'</font><br>");//添加信息</p><p>  view.

22、setSq(sq);//更新面板數(shù)據(jù)</p><p>  view.showWork();//刷新隊列面板</p><p>  view.showNewWork(sqnum+1, work);//刷新正在處理的面板</p><p>  int sqtime=sq[sqnum].getTime();//獲取隊列時間片</p><p>  if(

23、isOver(sq[sqnum], work)){//在時間片類執(zhí)行完了</p><p>  int worktime=work.getLefttime();//獲取進(jìn)程的剩余執(zhí)行時間</p><p>  for(time=0;newflag&&time<worktime;time++){</p><p>  Thread.sleep(1000

24、);</p><p><b>  }</b></p><p>  overThread(work);</p><p><b>  }else{</b></p><p>  for(time=0;newflag&&time<sqtime;time++){</p>&

25、lt;p>  Thread.sleep(1000);</p><p><b>  }</b></p><p>  if(newflag){//沒有新進(jìn)程加入隊列</p><p>  work.setLefttime(work.getLefttime()-sq[sqnum].getTime());</p><p> 

26、 if(sqnum==3){//最后一個隊列</p><p>  addInSeqQueue(sqnum, work);//放入下個隊列</p><p>  view.addMes("<font size='3'>'"+work.getName()+"'未執(zhí)行完,轉(zhuǎn)入隊列"+(sqnum+1)+"

27、隊尾</font><br>");</p><p><b>  }else{</b></p><p>  addInSeqQueue(sqnum+1, work);//放入下個隊列</p><p>  view.addMes("<font size='3'>'&quo

28、t;+work.getName()+"'未執(zhí)行完,轉(zhuǎn)入隊列"+(sqnum+2)+"隊尾</font><br>");</p><p><b>  }</b></p><p>  }else{//有新進(jìn)程加入隊列</p><p>  view.addMes("<

29、;font size='3' color=#FF0000>有進(jìn)程進(jìn)入了優(yōu)先級更高的隊列</font><br>");</p><p>  view.addMes("<font size='3'>'"+work.getName()+"'進(jìn)入隊列尾部</font><br&g

30、t;");</p><p>  work.setLefttime(work.getLefttime()-time);</p><p>  addInSeqQueue(sqnum, work);//放入隊列尾部</p><p>  newflag=true;</p><p><b>  }</b></p&g

31、t;<p><b>  }</b></p><p>  work=null;</p><p>  view.showNewWork(sqnum+1, work);//刷新正在處理的面板</p><p>  } catch (Exception e) {</p><p>  e.printStackTrace

32、();</p><p><b>  }</b></p><p><b>  七.心得體會</b></p><p>  通過這次課程設(shè)計,不僅讓我進(jìn)一步地了解了多級反饋隊列調(diào)度算法,更重要的提高了我們的動手能力。這次的課程設(shè)計項目也讓我意識到,未來的編程不是簡簡單單就能完成。而編程中所出現(xiàn)的問題也需要大家共同協(xié)商解決。開始的

33、時候以為這道題有些難,經(jīng)過對資料的查詢.如:多級反饋隊列調(diào)度算法如何的實現(xiàn)機(jī)制等,很快的找到了解決的辦法并迅速的編寫出了代碼。.</p><p>  對問題缺乏仔細(xì)的分析是我的一個缺點(diǎn),通過這次課程設(shè)計我克服了這個缺點(diǎn),更學(xué)會了如何地利用無限的網(wǎng)絡(luò)資源來幫助自己完善程序,學(xué)會了是使用前人的經(jīng)驗來幫助自己更好地成長。這個多級反饋隊列調(diào)度算法程序還有一些不足之處,如不能演示過多的程序等,在以后的時間里我會將其完善。次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論