采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序_第1頁
采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序_第2頁
采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序_第3頁
采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序_第4頁
采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

圖4輸人任務不可度巧)若輸入任務可以調(diào)度,.系統(tǒng)不會給出任何提示,可直接在就緒隊列的列表中顯示就緒隊列的各任務信息圖5輸入正確的任務信息,檢查就緒隊列(6〕點擊廾始運行按鍵即廾始任務調(diào)度的模擬,三個動態(tài)顯示控件分別用來顯示運行任務,就緒隊列和完成隊列里面各任務的屬性信息,上下文切換時,提示用戶按下任意鍵繼續(xù)。執(zhí)行隊列:8上下切換,按下任意褳繼綞!十E人列;一亓棄52圖6動態(tài)顯示任務的調(diào)度過程o〕若選擇從當前的界面輸入時,系統(tǒng)會在用戶輸人運行任務總數(shù)和運行時間后,隱藏和鎖定這兩個按鍵,從而不再接受關于這兩個變量的任何輸入“之后用戶只可依次輸入任務的信息,非氵去的輸入數(shù)據(jù)在輸入時將會被自動忽略,以及對任務編號是否重名的檢查。當任務輸入完成時,隱藏“點擊提交本次任務"。圖7用戶從界面輸入任務信息(8)在運行過程中點擊暫停運行\(zhòng)繼續(xù)運行\(zhòng)終止運行按鍵依次實現(xiàn)程序運行的暫停運行、繼續(xù)運行、和退出當前任務運行的功能。當用戶點擊暫停時,就算沒有上下文切換,系統(tǒng)的運行也會停下來,直到用戶點擊繼續(xù)。態(tài)晝示:行列;開始運行繼續(xù)運行終止運行 亙i 。甘日、?E 肛行 40卜丨日、、日、.2 、、日、日、E圖8運行過程中笤停六、程序清單一一文件讀取voidCMyDIg.:OnRadwI()TODOAddyocon0《notificationhandlercodehexecstrmgsl,s2,name,penod,mnt1me,stuTimeJ/é,時間Lilt」0b;7/限定文件格式CFiIeDia10gdlg(tme,NULL,NULL,OFN_HIDEREADONLYOFNOVERWRITEPROMPT,"textfile輯*.瞓0:if(IDOK一dDoModal()的正常打開蚓一dG“ath№me()獲取文件路徑CStdioFIIefile/℃運行時流式文件@腋Open@,Chie:.m。deRead)過只讀的方式打廾失敗,參數(shù):獲取路徑,打開方式MessageBox("文件打丿f失敗");returnfile.ReadStmg()2〕/啩始文骨第一行,總任務數(shù)」0b:atol@2是轉換為整數(shù)file.ReadStnng(stuTune);//Oj真時河SumT1me—atoi(stuTnme);legal—O,for()ti一0.往m」0b0十十〕file.ReadString(name);file.ReadString(period);file.ReadString(mntime)—+f?%MJ1?UCMyDlg:DuQu(name,penod,mntime),DestroyQueue(Qon);DestroyQueue(Qready),DestroyQueue(Qdone);m_listI.DeleteAllItems();m_list3.De1eteAllItems();InitQueue(Qon);InitQueue(Qdone);InitQueue(Qready);intCMyDl&sl,CStrings2,CStrings3)intl,j;i=atoi(s2);legal-HIreturnO;else{POINTworkjob,ob->jjob->jobdoneTimes—0,ob->jjob->jobid=SIjob->jobidentify—O,job->job_llf—i-j;job->jobMissTimes=Ojob->jobpenod—a,ob->jCMyDlg.returnl,elsereturn0,floatjudge—O.0;if(!QueuePOINTQN0dep;DestroyQueue(Qready),InitQueue(Qready);m_list2.DeleteAllItems();return0,elsereturnl,elsereturn0;11intintDeleteHead(Qon,job);ob->job->j ;job->job_doneTimes4+-,ob->job_llf—(j0bob_doneTimes+I)*j0b->jobzperiod-count-jobjob->jobjob->jobendTime—count;DeleteHead(Qdone,job);job->jobMissTimes+job->jobdoneTimes+l)*job->job_pe1iod-count-job->jobLunTune;OrderJobI(Qready,j0b); if(!V', ,DeleteHead(Qready,job),RneedTune-,return17intCMyDl&PONT_workjob;ISDeleteHead(Qon,job);*(job->job_period) countjob—job_flag—I;job-?j;OrderJob(Qready,job);if(!QueueEmpty(Qready))job—job_state—"??tjleft_Tob->job_RneedTime;let-uml,mtCMyDlgCStnngCMyDlg_Qdonefti±id-kMJif(!QueueEmpty(Qready))Liltflag—O,m_list2FJifj-éI{JPOINTQN0deploopI:gotoloopl,19llf=1000)*(p->data->jobMissTimes+p->data->jobdoneTimes)=lilt(count))period.Format("%d",p->data->job_period);mnTime);",p->data->job_RneedTime);POINT_workjob,flag—I;0b);fi{JGetHeadElem(Qon,job);ob_RneedTime!—O)//héI(JCMyDlg::gotoloopl,else,if(flagl)20o團eueu瓠Qady〕孬放入就緒隊列mlist2DeleteAllItems(),goto[。mlist2.InsatItem(i,NULL),mlist2.SetItemText(i,O,p->data->jobid),mlist2.SetItemText(i,l,p>data->job_state〕;mlist2.SetItemText(i,2,penod),mlist2.SetItemText(i,3,mntlmemlist2.SetItemText(i4,11f);mlist2.SetItemText(i,5,meedüme)1p—p>next;elsemlist2.DeIeteAIIItems(),return].七、體會與自我評價這次操作系統(tǒng)課設題目是采用最低松弛度優(yōu)先調(diào)度的實時系統(tǒng)調(diào)度程序的模擬,剛開始對他的了解僅垠十課本上的算法例子,未曾想過用可視化的畀面呈現(xiàn)出一個完整的運行過程。由于是大二下做c艸的課程設計才用到過c,之后就沒有用過,所以當決定用MHC做以呈現(xiàn)可視化時1決定重新溫習一遍c的知識。包扌叾去網(wǎng)上找猻鑫視頻(講c部分〕以及去圖書館借相關書籍。由十此次課程設計要求以動態(tài)結果顯示各任務的完成情況,所以免不了要運用到隊列相關知識。之前學習數(shù)據(jù)結構的基礎不是很強,尤其是對十指針部分。所以這次特別再看了一遍數(shù)據(jù)結構書本和以前的PPT,還有參考了一本《數(shù)據(jù)結構與算法》語言版)。發(fā)覺隊列運用氬表和指針,確實很方便。通過這次的學習,更加鞏固了數(shù)據(jù)結構的相關知識,同時對指針的理解更加深刻,不再向以前望而生畏。課程設計中雖然知道當最低松弛度降為0的時候,會搶占,但是對于如何搶占,被槍占的作業(yè)如何保存當前的狀態(tài),算氵去可調(diào)度性,以及要通過什么樣的數(shù)據(jù)結構來實現(xiàn)等等一系列的實現(xiàn)中可能遇到的問題。因此算氵去的實現(xiàn)上,數(shù)據(jù)結構中包含了結構體,指向結構體的指針,隊列,隊列的首尾指針,調(diào)度算法包含了就緒隊列,執(zhí)行隊列,完成隊列的相互切換和根據(jù)松弛度的搶占等等,最終解決了這些問題之后,發(fā)覺在測試階段還得解決運行一段時間后,同時有兩個任務的最低松弛度降為0的時候,系統(tǒng)該如何調(diào)度。一時之間,確實不知道如何辦,后來在自己和同學的幫助下定了如何實現(xiàn),真止認識到團隊合作的重要性。通過這次的課程設計,我對操作系統(tǒng)這門學科有了新的認識,同時也對真正的計算機操作系統(tǒng)有了更加深人的了解。甴于以前了解的僅僅是最基礎,最理論的東西,所以當涉及到具體的實現(xiàn)方法時就有些找不著北了,通過這次的最低松弛度算氵去,我才真止了解了調(diào)度的原理和細節(jié),雖然只是一個壬務調(diào)度的模擬,但是己經(jīng)把調(diào)度的全過程顯示出來0通過這樣的一個模擬和動態(tài)顯示的過程,可以韓常形象的掃述操作系統(tǒng)的工作過程?,F(xiàn)在發(fā)覺對于這個知識點己經(jīng)有了很好的理解。中此可以知道專業(yè)課的學習1是需要多親自動手做的。很多的知識,如果單單從理論的角度是比較簡單的,可是真親自動手.去做一個的時候就會發(fā)現(xiàn)在制作的過程中出現(xiàn)各種各樣的問題。比如這次的課設,我在最開始就出現(xiàn)了調(diào)度算法調(diào)2《度次序不當,算法健壯性不夠強大,和訪問越界,參數(shù)傳遞類型不匹配等錯誤,這些錯誤如果僅僅從理論上大家都可以很清楚的知道,也能避免??墒钦鎖E在做程序的時候,這些錯誤發(fā)生在數(shù)千行的代螞之中的時候,盡管有編譯軟件提示出錯可也難以準確的定位,所以一時間難以找到錯誤的根源,有的時候不得不單步調(diào)試。這些都說明自己平時專業(yè)課的學習不夠洙入,動手上機練習的還是太少。所以在以后的學習中,應該保持清晰的頭腦,多師練習,勤于動手,這樣才能學的更加深入透徹。還有就是答辯的時候,千萬不能緊張,感覺這次答辯挺緊張,所以不但要學好,還應保持良好的態(tài)。八、參考文獻湯子瀛編著,計算機操作系統(tǒng)(修訂版),西安電子科技大學出版社,2001年[2]顏盟盟編著,v讓“1C++從入門到精通,化學工業(yè)出叛社,20的年[3]林俊杰編著,新一代s艸+程序設計,清華大學出版

溫馨提示

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

評論

0/150

提交評論