![短作業(yè)優(yōu)先調度算法_第1頁](http://file4.renrendoc.com/view/5681cbcd68de611da404a5b88a777f0c/5681cbcd68de611da404a5b88a777f0c1.gif)
![短作業(yè)優(yōu)先調度算法_第2頁](http://file4.renrendoc.com/view/5681cbcd68de611da404a5b88a777f0c/5681cbcd68de611da404a5b88a777f0c2.gif)
![短作業(yè)優(yōu)先調度算法_第3頁](http://file4.renrendoc.com/view/5681cbcd68de611da404a5b88a777f0c/5681cbcd68de611da404a5b88a777f0c3.gif)
![短作業(yè)優(yōu)先調度算法_第4頁](http://file4.renrendoc.com/view/5681cbcd68de611da404a5b88a777f0c/5681cbcd68de611da404a5b88a777f0c4.gif)
![短作業(yè)優(yōu)先調度算法_第5頁](http://file4.renrendoc.com/view/5681cbcd68de611da404a5b88a777f0c/5681cbcd68de611da404a5b88a777f0c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、青島理工大學操作系統(tǒng)課程設計報告院(系):計算機工程學院專業(yè):計算機科學與技術專業(yè)學生姓名班級:學號:題目:短作業(yè)優(yōu)先調度算法的進程調度程序1起迄日期:設計地點:指導教師:2011201年2度第1學期完成日期:2年01月2日課程設計目的進行操作系統(tǒng)課程設計主要是在學習操作系統(tǒng)課程的基礎上,在完成操作系統(tǒng)各部分實驗的基礎上,對操作系統(tǒng)的整體進行一個模擬,通過實踐加深對各個部分的管理功能的認識,還能進一步分析各個部分之間的聯系,最后達到對完整系統(tǒng)的理解。同時,可以提高運用操作系統(tǒng)知識解決實際問題的能力;鍛煉實際的編程能力、開發(fā)軟件的能力;還能提高調查研究、查閱技術文獻、資料以及編寫軟件設計文檔的能
2、力。二、課程設計內容與要求設計目的:在多道程序和多任務系統(tǒng)中,系統(tǒng)內同時處于就緒狀態(tài)的進程可能有若干個,且進程之間也存在著同步與互斥的關系,要求采用指定的調度策略,使系統(tǒng)中的進程有條不紊地工作,通過觀察諸進程的運行過程,以鞏固和加深處理機調度的概念。2、設計要求(多道、單處理機):每一個進程有一個PCB,其內容可以根據具體情況設定??梢栽诮缑嬖O定的互斥資源(包括兩種:輸入設備與輸出設備)的數目進程數、進入內存時間、要求服務時間可以在界面上進行設定進程之間存在一定的同步與互斥關系,可以通過界面進行設定,其表示方法如下:進程的服務時間由三段組成:I2C10O5(表示進程的服務時間由2個時間片的輸入
3、,10個時間片的計算,5個時間片的輸出)進程間的同步關系用一個段表示:W2,表示該進程先要等待P2進程執(zhí)行結束后才可以運行因此,進程間的同步與互斥關系、服務時間可以統(tǒng)一用四段表示為:I2C10O5W2可以在運行中顯示各進程的狀態(tài):就緒、阻塞、執(zhí)行采用可視化界面,可在進程調度過程中隨時暫停調度,查看當前進程的狀態(tài)以及相應的阻塞隊列具有一定的數據容錯性三、系統(tǒng)分析與設計1、系統(tǒng)分析本系統(tǒng)主要是采用短作業(yè)優(yōu)先算法進程的進程調度過程。短作業(yè)優(yōu)先調度算法,是指對短作業(yè)或短進程優(yōu)先調度的算法。他們可以分別用于作業(yè)調度和進程調度,短作業(yè)優(yōu)先的調度算法是從后備隊列中選擇一個或若干個估計運行時間最短的作業(yè),將他
4、們調入內存運行。而短進程優(yōu)先調度算法則是從就緒隊列中選出一個估計運行時間最短的進程,將處理機分配給他,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某事件而被阻塞放棄處理機時再度重新調度。本程序采用了非搶占式短作業(yè)優(yōu)先調度。而非搶占式這種方式,一旦把處理機分配給某進程后,便讓該進程一直執(zhí)行,直至該進程完成或發(fā)生某事件而被阻塞時,才再把處理機分配給其它進程,決不允許某進程搶占已經分配出去的處理機。這種調度方式的優(yōu)點是實現簡單,系統(tǒng)開銷小,適用于大多數的批處理系統(tǒng)環(huán)境。但它難以滿足緊急任務的要求立即執(zhí)行,因而可能造成難以預料的后果。因此,在要求比較嚴格的實時系統(tǒng)中,不宜采用這種調度方式本系統(tǒng)的主要是在滿足要
5、求多道單處理機的情況下進行短作業(yè)的優(yōu)先調度。本系統(tǒng)在測試時輸入了五個進程,按實驗要求如I2C10O5(表示進程的服務時間由2個時間片的輸入,10個時間片的計算,5個時間片的輸出,5個時間片的計算組成)的方式輸入,各進程的信息如下:(00111)(12122)(24111)(36211)(48101),其中括號內第一個數字代表進程標識,第二個數字代表進程的到達時間,第三的字符串則代表的是服務時間,由此可得五個進程的服務時間分別為3,6,4,5,2。進程進入內存,則按照優(yōu)先級進行執(zhí)行進程。主要是實現了進程執(zhí)行過程的界面演示以及在暫停演示時各進程此時的狀態(tài),主要包括三種狀態(tài)就緒、執(zhí)行、阻塞。同時,在
6、暫停執(zhí)行時可以查看當前時間的阻塞隊列。其中進程執(zhí)行界面的演示過程中用到了坐標軸,軸代表時間,軸代表進程的標志(默認進程標志為0表示進程的個數,在計數過程中按進程的到達時間開始計數),用灰色表示一個時間片,每個進程的執(zhí)行過程即可表示為時間片不斷增加的過程。下面是進程信息的輸入界面,界面介紹如下:需要錄入的進程數:輸入需要執(zhí)行的進程的個數。保存文件:輸入數據后將自動保存進程信息,保存在文件中,因此輸入你要保存的文件的名子,或者在輸入進程信息時直接輸入已保存的文件名(不包括擴展名)便可直接點擊“錄入完畢”按鈕,進行后續(xù)操作。輸入設備數目:主要是輸入輸入設備的數目。輸出設備數目:主要是輸入輸出設備的數
7、目。進入內存的時間:表示進程的到達時間。要求服務時間:進程的服務時間由四段組成:(表示進程的服務時間由個時間片的輸入,1個0時間片的計算,5個時間片的輸出),按此格式輸入信息,如若沒有其中一步如沒有計算這一步表示有0個時間片的計算,服務時間可以表示為1以此格式輸入進程的服務時間。“錄入第1個數據“按鈕:當你輸入完畢第一個數據時,點擊此按鈕,進入第二個進程數據信息的錄入?!颁浫胪戤呥M行演示“按鈕:當你將所有進程的信息輸入完畢后點擊此按鈕。進入演示界面進行演示?!巴顺觥鞍粹o:在執(zhí)行此界面的任何時刻均可點擊此按鈕,退出此界面。錄入完畢點擊按鈕“錄入完畢進行執(zhí)行”后便會彈出進程的執(zhí)行演示界面如下:右上
8、角帶顏色的三個矩形分別表示進程的執(zhí)行狀態(tài),藍色矩形代表進程正在執(zhí)行,綠色矩形代表進程已經執(zhí)行完成,紅色矩形則代表進程受到阻塞?!伴_始演示“按鈕:點擊此按鈕則開始演示進程的執(zhí)行過程。“暫停演示“按鈕:點擊此按鈕則暫停進程的演示過程?!爸匦麻_始“按鈕:點擊此按鈕則重新演示進程的執(zhí)行過程。“退出界面“按鈕:點擊此按鈕則退出演示界面?!安榭醋枞犃小卑粹o:在點擊“暫停演示”按鈕之后,點擊此按鈕,可查看此時的阻塞隊列。1、系統(tǒng)設計本調度算法在設計的時候主要運用了四個類庫。類庫主要是包括了要運用到得相關類有三個,類主要是聲明了進程的相關屬性以及方法結構體,和類主要是對進程相關屬性進行處理。類庫主要是實現短
9、作業(yè)優(yōu)先調度,同樣包括三個類,類主要是實現對阻塞隊列的處理,類主要是實現按進程的優(yōu)先級進行排序實現進程的短作業(yè)優(yōu)先調度,類主要是為了實現進程執(zhí)行演示的方便設計的一個類,它聲明了一個數組,將每個時刻的進程作為數組元素放入數據組中。類庫主要是對演示界面的處理,里面包括一個類這個類主要是完成對演示界面所運用到得坐標軸的實現。最后一個類庫為短作業(yè)優(yōu)先調度演示程序,主要包含了和兩個類,這兩個類主要是實現程序界面的設計,以及相關控件事件的連接以及實現。在本程序中主要運用的數據結構是數組,如數組主要使用了存放進來的進程(存放順序按進程的到達時間,為方便描述一下均簡寫為),數組用來存放阻塞隊列,是將進程按短作
10、業(yè)優(yōu)先級排序后的數組,數組則是某一時刻到達的所有進程所形成的數組,以上數組均已進程作為數組元素。短作業(yè)優(yōu)先調度流程圖如下:短作業(yè)優(yōu)先調度阻塞隊列的流程圖如下:進程調度演示流程圖:阻塞隊列進程調度演示四、系統(tǒng)測試與調試分析1、系統(tǒng)測試本程序主要是采用功能測試,對程序進行的相關的測試與分析。共輸入五個進程信息,輸入設備和輸出設備各輸入一個然后分別輸入各進程的到達時間和服務時間,分別如下:(0111)(2122)(4111)(62111)(8101)。再輸入過程中,進程的個數、到達時間以及輸入設備和輸出設備的個數分別是整數,否則將提示輸入錯誤。進程的服務時間必須嚴格按照要求來填寫,否則將提示輸入錯誤
11、。測試說明測試名稱短作業(yè)優(yōu)先調度程序測試目的驗證系統(tǒng)對短作業(yè)優(yōu)先調度的過程并演示測試技術功能測試測試方法黑盒測試法測試用例1測試內容進程信息的進入內存的輸入功能測試步驟輸入正確的進程信息輸入錯誤的進程信息測試數據進入內存時間1進入內存時間為h預期結果可以正常運行,可以進入下一步驟顯示“輸入信息不正確”測試結果與預期結果一樣與預期結果一樣測試用例2測試內容進程信息的服務時間的輸入功能測試步驟輸入正確的進程信息輸入錯誤的進程信息測試數據進程服務時間為12C1O1進程的服務時間為2預期結果可以正常運行,可以進入下一步驟顯示“輸入信息不正確”測試結果與預期結果一樣與預期結果一樣測試用測試內容測試進程信
12、息的保存功能測試步驟輸入已測試進程信息時保存的正確的文件名輸入不存的在的文件名測試數據文件123(123.txt內保存已經運行過進程的信息不存在的文件mg例3預期結果系統(tǒng)正常運行,并能夠正確演示系統(tǒng)不能正常運行測試結果與預期結果一樣與預期結果一樣由此可得五個進程的執(zhí)行順序為:3,6,4,5,2。2、調試分析在調試本程序時和演示過程中,出現了不少的錯誤。其中在編寫短作業(yè)優(yōu)先調度算法的代碼中,用到了不少的for循環(huán)以及for循環(huán)的嵌套,在這部分出現了變量的混淆,大括號的缺失或多余,經過檢查后改正。在編寫短作業(yè)優(yōu)先算法代碼的時候,出現了思路紊亂,算法思路不清晰,不能夠完成短作業(yè)的優(yōu)先,后經請教同學以
13、及通過畫相關流程圖得到解決。還有由于對c#的運用并不熟練以及對c#的可視化界面的制作不太了解,使自己在做程序過程中遇到了很大的阻力,后經過翻看相關書籍以及請教同學,解決的這個問題。本程序的演示界面做的很簡陋,只是簡單的實現了非搶占式的短作業(yè)優(yōu)先調度,但是在本程序的功能中有一項實現輸入設備和輸出設備只是實現了設備數目的輸入功能,但是沒有實現設備之間的互斥問題。因此,本程序無論是在界面還是在功能上均有很大的缺點和不足之處,需要不斷的改進和完善。五、用戶手冊1、程序的編寫是在win7系統(tǒng)下的VS2010成的。2、由于電腦系統(tǒng)里已經安裝了vs2010此不需要再進行安裝。3、使用本程序界面的步驟。(1)
14、運行本程序會彈出界面如圖5-1:圖5-1(2)在以上彈出的界面上輸入進程的數目以及保存的文件名和輸入設備和輸出設備的數目然后輸入第一個進程的進入內存的時間和要求服務的時間。如圖5-2:12S2錄幾第2個埶攥錄瓜芫畢迸行涌示退出進入內存時間:要徇瞬時間:12“保存文件名:需要錄入的進程數:5戛小的信息輸鋪殳瞥數目輸出設備埶目1圖5-2(3)點擊“錄入第1個數據12S2錄幾第2個埶攥錄瓜芫畢迸行涌示退出進入內存時間:要徇瞬時間:12“保存文件名:需要錄入的進程數:5戛小的信息輸鋪殳瞥數目輸出設備埶目1圖5-2(3)點擊“錄入第1個數據”按鈕,彈出以下窗口,開始輸入第二個數據的進入內存的時間和要求服
15、務的時間。如若輸入的數據格式正確,則會彈出圖5-3:圖5-3點擊確定按鈕,進入下一個數據的輸入圖2保存文件名:12S輸義殺瞥顫目1每牛的信息進入內存時間:妾求朋務時間:錄幾第2個埶搏輸出設備埶目1需要錄入的逬程數:5錄人兵畢進行謹示退出211圖5-4如此依次輸入所有進程的相關信息,直到所有的進程信息都輸入完畢。如若輸入數據不正確則會彈出窗口圖5-:5圖點擊確定重新輸入正確的進程信息。(4)當將所有的進程信息都輸入完畢后,點擊“錄入完畢進行演示”按鈕則會彈出演示界面圖5-:6圖5-65)點擊開始演示按鈕,進程開始執(zhí)行。演示狀態(tài)如圖圖5-76)點擊暫停按鈕,演示暫停,進程停止執(zhí)行,此時可查看各進程
16、的狀態(tài)圖圖5-8(7)在暫停的情況下,點擊“查看阻塞隊列”按鈕。則會彈出以下窗口,并顯示此刻的阻塞隊列。如圖5-:9圖5-9(8)如果想重新演示,可以點擊“重新開始”按鈕。當演示完畢后,可以點擊“退出界面”按鈕。退出演示界面。六、程序清單重載的方法程序內部使用的進入內存的時間要求服務的時間在原有的基礎上添加將中的每個進程對象都拼接成一個字符串,存放到文件中將中的每個進程對象都拼接成一個字符串,存放到文件中在字符串的最后加上換行的標志調用函數,實現存儲將/一個進程的轉化成對應的類為/各個變量賦值阻/塞隊列的處理函數變量初始化阻塞隊列數組每個算法的執(zhí)行順序給定時間內到達的進程阻塞隊列的下標完成的進
17、程的最后一個的下標完成進程的總的服務時間短作業(yè)優(yōu)先調度算法首阻先獲取得到執(zhí)行的序列符阻合條件的獲取得到給定時間內到達的進程,進行阻塞隊列的計算獲取已經執(zhí)行完了的進程的標志已經執(zhí)行完了的總的服務時間去除不符合條件的將中的非空值,按照在數組中的順序,存入阻塞數組中首/先按照進入時間排序,然后根據服務時間對排序進行調整按照進入時間進行排序獲/取前面一段的要求服務總時間找/到要處理的進程數組,即在前一個進程處理時間內到達的進程注意空值將中的非空數據將作業(yè)大的排在后面,實現短作業(yè)優(yōu)先將中的非空數據,覆蓋中的相應位置的數據七、體會與自我評價短作業(yè)優(yōu)先調度算法,是指對短作業(yè)或短進程優(yōu)先調度的算法。他們可以分
18、別用于作業(yè)調度和進程調度,短作業(yè)優(yōu)先的調度算法是從后備隊列中選擇一個或若干個估計運行時間最短的作業(yè),將他們調入內存運行。而短進程優(yōu)先調度算法則是從就緒隊列中選出一個估計運行時間最短的進程,將處理機分配給他,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某事件而被阻塞放棄處理機時再度重新調度。本程序采用了非搶占式短作業(yè)優(yōu)先調度。而非搶占式這種方式,一旦把處理機分配給某進程后,便讓該進程一直執(zhí)行,直至該進程完成或發(fā)生某事件而被阻塞時,才再把處理機分配給其它進程,決不允許某進程搶占已經分配出去的處理機。這種調度方式的優(yōu)點是實現簡單,系統(tǒng)開銷小,適用于大多數的批處理系統(tǒng)環(huán)境。但它難以滿足緊急任務的要求立即執(zhí)行,因而可能造成難以預料的后果。因此,在要求比較嚴格的實時系統(tǒng)中,不宜采用這種調度方式本系統(tǒng)的主要是在滿足要求多道單處理機的情況下進行短作業(yè)的優(yōu)先調度。在做課程設計的過程中,我漸漸發(fā)現了自己的許多不足之處。比如,對短作業(yè)優(yōu)先調度的原理了解不透徹,對課本知識掌握不熟練,以至在做的過程中需要不斷的去翻閱資料和課本,大大降低了制作課設的效率。但正是這樣,通過這次短作業(yè)優(yōu)先調度課設,使我更加深刻
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水泥沙子采購合同
- 授權經銷合同協議
- 農業(yè)科技園區(qū)綜合開發(fā)合同
- 短期租賃服務意外免責協議
- 網絡信息技術支持協議
- 商場裝修合同與商場裝修合同
- 打井承包合同
- 手房轉讓買賣協議
- 新版不定期勞動合同書(33篇)
- 瓦工貼磚施工合同
- 國企經理層任期制和契約化管理任期制與契約化相關模板
- 壓力管道檢驗員題庫
- 第二單元整體研習+教學設計 統(tǒng)編版高中語文選擇性必修上冊
- 動脈采血操作評分標準
- 企業(yè)外部環(huán)境與內部能力分析報告
- 病理科科科內會診記錄
- 研發(fā)費用加計扣除費用PPT
- 小學生主題班會 弘揚航天精神 課件 (27張PPT)
- 一、二年級小學民族團結教案
- 電力服務收費標準附表
- 小學主題班會教學設計-《給你點個“贊”》通用版
評論
0/150
提交評論