操作系統(tǒng)課程設計-時間片輪轉算法java實現(xiàn)_第1頁
操作系統(tǒng)課程設計-時間片輪轉算法java實現(xiàn)_第2頁
操作系統(tǒng)課程設計-時間片輪轉算法java實現(xiàn)_第3頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學 號: 2010202課程設計題 目:處理機管理模擬系統(tǒng)的設計與實現(xiàn)學生:學院:信息工程學院系別:軟件工程系專業(yè):軟件工程班級:指導教師:副教授講師2013年1月8日工業(yè)大學課程設計任務書(四)學院(系):信息學院軟件工程系 課程名稱:操作系統(tǒng)課程設計 指導教師(簽名):專業(yè)班級:學生: 學號:、課程設計題目 處理機管理二、課程設計的目的學生通過設計一個模擬單處理機調度的算法,以鞏固和加深處理機調度的 概念。使學生初步具有研究、設計、編制和調試操作系統(tǒng)模塊的能力。三、課程設計的主要容和要求 (包括原始數據、技術參數、設計要求、工作量 要求等)原始數據:進程控制塊PCB結構體。技術參數:Win

2、dows XP系統(tǒng),VC+6.0開發(fā)工具。設計要求:1 設計基于時間片輪轉法的處理機調度算法;2 或設計基于先來先服務或基于優(yōu)先權的處理機調度算法;3 畫出以上算法流程圖;4 編程實現(xiàn)算法功能;5編寫課程設計說明書。工作量要求:完成以上設計要求中的所有算法功能四、工作進度安排周周周周周布置、講解題目,收集資料; 系統(tǒng)分析,算法設計; 編制、調試程序;測試系統(tǒng),形成設計結論,編寫課設報告; 系統(tǒng)及材料驗收,課設答辯。五、主要參考文獻1 堯學編計算機操作系統(tǒng)教程(第三版)習題解答與實驗指導.:清華大學,20062 湯子瀛主編計算機操作系統(tǒng)(第三版):電子科技大學,2001 坤等編操作系統(tǒng)實驗教程.

3、:清華大學,2008審核批準意見系(教研室)主任(簽字) 摘要操作系統(tǒng)是計算機系統(tǒng)的關鍵組成部分, 負責管理與配置存、 決定系統(tǒng)資源供需 的優(yōu)先次序、 控制輸入與輸出設備、 操作網絡與管理文件系統(tǒng)等基本任務。 對于不同 的系統(tǒng)和系統(tǒng)目標, 通常采用不同的調度算法, 如在批處理系統(tǒng)中,為照顧為數眾多 的短作業(yè),采用短作業(yè)優(yōu)先調度算法; 在分時系統(tǒng)中, 為保證系統(tǒng)具有合理的響應時 間,采用時間片輪轉法進行調度。采用算法時,則要考慮多方面因素,以便達到最佳 效果。本次課程設計采用時間片輪轉調度算法來實現(xiàn)模擬進程調度任務的執(zhí)行過程。用 Java 模擬進程調度過程,可以方便地將運行結果直觀地表示出來。

4、Java 語言 獨有的多線程操作, 可以實現(xiàn)許多其他語言不能實現(xiàn)的功能, 極方便了程序開發(fā)人員 對程序的開發(fā)。此外,利用JavaGUI編程,可以使系統(tǒng)提供的界面更加友好。實驗中, 應用文件I/O操作、線程、AWTSwing、部類、接口、異常處理等技術,開發(fā)此系統(tǒng)。關鍵字:時間片輪轉; Java 編程; GUI 圖形用戶界面; 文件操作;AbstractThe operati ng system is a key comp onent of the computer system, resp on sible for the man ageme nt and con figurati on me

5、mory, decided to system resources supply and dema nd priority, con trol in put and output equipme nt, operati on and man ageme nt of n etwork file system, and other basic tasks.For differe nt systems and system target, computers usually use differe nt scheduli ng algorithm, such as in a Batch Proces

6、s ing System, i n order to take care of a lot of short operation, using Short Job First algorithm;In systems with time shari ng, to en sure the system has reas on able resp onse time, n eed time slice Round Robin algorithm for scheduling. The algorithm, we should consider various factors, in order t

7、o achieve the best effect.This Course Desig n uses time slice Round Rob in algorithm to simulate the process scheduli ng task executi on process.With Java simulatio n process scheduli ng process, which can be convenien tly will run results intuitively said out.In addition, the use of JavaGUI program

8、ming, can make the system to provide the in terface more frie ndly.Experime nts, applicati on file I/O operati on, threads, AWT, Swing, internal class, in terface, abno rmal process ing tech no logy, the developme nt of this system.Keywords: time slice Round Robi n; Java Programmi ng; Graphical User

9、 In terface; File Operati on;目錄第一章 問題分析 11.1 設計目的 11.2 設計目標 11.2.1 問題描述 11.2.2 基本要求 11.3 設計思想和運行環(huán)境 1第二章 概要設計 32.1 系統(tǒng)結構 32.1.1 系統(tǒng)結構層次圖 32.1.2 系統(tǒng)功能說明 32.2 算法描述 4第三章 詳細設計 53.1 系統(tǒng)程序流程圖 53.2 部接口設計 73.2.1 系統(tǒng)框架接口run () 73.2.3 創(chuàng)建進程接口createFrame() 83.2.4 運行程序接口runFrame() 83.2.5 顯示結果接口resultFrame() 93.3 用戶接口

10、9第四章 系統(tǒng)實現(xiàn) 114.1 編碼實現(xiàn) 114.2 單元測試 114.2.1 創(chuàng)建進程模塊 114.2.2 運行程序模塊 134.2.3 結果顯示模塊 144.3 遇到的問題 15第五章 自我評價與總結 16參考文獻 17第一章 問題分析1.1 設計目的在多道程序或多任務系統(tǒng)中, 系統(tǒng)同時處于就緒態(tài)的進程有若干個。 也就是說能 運行的進程數遠遠大于處理機個數。 為了使系統(tǒng)中的各進程能有條不紊地運行, 必須 選擇某種調度策略, 以選擇一進程占有處理機。 要求設計一個模擬單處理機調度的算 法,以鞏固和加深處理機調度的概念。1.2 設計目標1.2.1 問題描述處理機管理是操作系統(tǒng)中非常重要的部分。

11、 為深入理解處理機調度部分的功能, 設計 一個按時間片輪轉調度 CPU 的算法,模擬實現(xiàn)處理機的調度。1.2.2 基本要求時間片輪轉調度CPU的算法是分時系統(tǒng)采用的典型算法,把CPU的執(zhí)行時間分 成若干個一定大小的時間片輪流的分配給就緒隊列的各個進程, 讓各就緒進程按指定 的順序分別占用 CPU 的一個時間片輪流執(zhí)行下去,直至完成。要求定義進程控制塊 PCB 的結構,并為每個進程任意確定一個要求運行時間和到達時間,按照進程到達 的先后順序排成一個循環(huán)隊列。設計按時間片輪轉的進程調度算法。1.3 設計思想和運行環(huán)境a. 設計思想(1) 假設系統(tǒng)有5個進程,每個進程用一個進程控制塊 Process

12、來代表。Process 的結構如圖1-1所示。對PCB控制塊進行包裝,形成循環(huán)鏈表結點 ProcessNode鏈 表結點ProcessNode如圖1-2所示。pn tmp圖1-3循環(huán)鏈表head(2) 為每個進程從模擬的系統(tǒng)中指定一個要求運行時間和到達時間。(3) 按照進程到達的先后順序排成一個循環(huán)隊列,再設一個隊首指針head指向第一個到達進程的首址。(4) 執(zhí)行處理機調度時,從隊列的第一個進程開始,用pntmp指針順序選擇可執(zhí) 行的進程執(zhí)行。(5) 由于本實踐是模擬算法,所以對被選中進程并不實際啟動運行,而只是執(zhí)行: 運行時間加100和輸出當前運行進程的相關信息。用這兩個操作來模擬進程的一

13、次運 行。b. 運行環(huán)境編程語言:Java語言工具:、Windows 7 系統(tǒng)以及 MyEclipse6.0.1 等第二章概要設計2.1系統(tǒng)結構系統(tǒng)結構層次圖處理機管理模擬系統(tǒng)創(chuàng)建進程運行程序顯示結果11-d輸入進程信息創(chuàng)建 結點插入 接點輸入進程信息創(chuàng)建 結點插入 接點輸入進程信息創(chuàng)建 結點插入 接點圖2-1處理機管理系統(tǒng)層次圖系統(tǒng)功能說明a. 創(chuàng)建進程模塊:創(chuàng)建進程模塊在輸入進程頁面輸入要創(chuàng)建的進程數,輸入后逐個將進程信息錄入 插入到就緒隊列中,完成進程的創(chuàng)建過程。b. 運行程序模塊:此模塊實現(xiàn)時間片輪轉調度算法,從就緒隊列中取出進程結點,并模擬運行該進 程,反復循環(huán),直至進程全部運行結束

14、。每次運行進程后,將運行信息存入到文件中, 實現(xiàn)信息的持久化。方便信息的記錄,系統(tǒng)功能的分析和出錯時便于檢查錯誤。c. 顯示結果模塊:從文件中讀入進程運行的結果,在圖形界面下操作,提供友好的用戶操作方式, 方便直觀的了解模擬進程的調度過程,便于數據分析和研究。2.2 算法描述a. 在創(chuàng)建進程界面將進程信息錄入,將進程控制塊進行包裝,插入到循環(huán)隊列 中;b. 當運行程序時,每次從就緒隊列隊首取出一個進程pntmp,判斷是pntmp進程否到達。到達則運行該進程;c. 若 pntmp 進程為首次運行,則記錄進程開始運行時間startTime ;d. 運行完pntmp進程后,輸出進程運行信息,并將此結

15、點移至隊尾;e. 若循環(huán)隊列長度size0,則返回執(zhí)行b;否則結束程序;第三章 詳細設計3.1 系統(tǒng)程序流程圖開始插入到循環(huán)隊列中圖3-1程序流程圖3.2部接口設計系統(tǒng)框架接口 run ()public void run()/創(chuàng)建系統(tǒng)主頁的框架1.創(chuàng)建框架frame/2.設置相關屬性3.2.2 增加面板組件接口 addComponentsTpPane()public static void addComponentsTpPane(Container pane)/1. 設置布局方式/2. 創(chuàng)建系統(tǒng)功能按鈕/3. 注冊按鈕/4. 監(jiān)聽按鈕動作,并產生相應操作,執(zhí)行對應的功能3.2.3 創(chuàng)建進程接口

16、 createFrame()public static void createFrame()class createInputFrame extends Frame implements ActionListener / 局部部類實現(xiàn)創(chuàng)建進程的界面/ 窗體按鈕等屬性的定義public createInputFrame(String str)/ 創(chuàng)建進程輸入窗口void panelCreateProIndex()void panelCreateProInput()/ 進程輸入首頁面/ 進程信息輸入頁面public void actionPerformed(ActionEvent e) / 監(jiān)聽器

17、createInputFrame cf= new createInputFrame( 進程創(chuàng)建 ); / 實例 化3.2.4 運行程序接口 runFrame()public static void runFrame() /1. 創(chuàng)建運行窗口界面 int currenttime=0; / 記錄系統(tǒng)當前時間 while (size !=0)/2. 運行時間片輪轉調度算法,并記錄信息try /3 將運行信息存入文件String file= D:JavaProcessormyfile.txt ; catch (IOException e1) 3.2.5 顯示結果接口 resultFrame()publ

18、ic static void resultFrame()/1. 創(chuàng)建顯示結果窗體JFrame jf= new JFrame( 顯示運行結果 );/2. 打開文件final JTextArea jta= newJTextArea(16,50); openbutton.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) /3. 將文件容讀到文本框中);3.3 用戶接口用戶啟動此處理機管理模擬系統(tǒng)后,即可方便的進行操作。以下為用戶使用此軟件時的 圖形接口:a.系統(tǒng)主界面(圖3-2):圖3

19、-2b.進程創(chuàng)建頁面(圖3-3):圖3-3第四章 系統(tǒng)實現(xiàn)4.1 編碼實現(xiàn)系統(tǒng)采用高級語言 Java 設計實現(xiàn),程序容易閱讀,易于測試,容易調試,方便 維護。并且 Java 為當今最流行的編程語言,有其獨到的優(yōu)點;程序代碼符合基本編 程規(guī),方法,屬性命名能體現(xiàn)程序的功能。4.2 單元測試4.2.1 創(chuàng)建進程模塊a. 測試數據進程數 num:2進程名進程運行時間進程到達時間神舟 1 號8000神舟 2 號300100b. 預期輸出無輸出結果,但創(chuàng)建進程模塊將輸入數據存入存,并結束輸入返回主界面c. 運行結果 進程數輸入界面(圖 4-1 ):圖4-1進程信息輸入界面(圖4-2):圖4-24.2.2

20、 運行程序模塊a. 測試數據進程數 num:2進程名 進程運行時間 進程到達時間神舟 1 號8000神舟 2 號300100b. 預期輸出系統(tǒng)時間進程名 剩余時間已運行次數 進程狀態(tài) 周轉時間0神舟 1 號7001true100200神舟 1 號6002true300神州 2 號2001true400神舟 1 號5003true500神州 2 號1002true600神舟 1 號4004true700神州 2 號1003false700800神舟 1 號3005true900神舟 1 號2006true1000神舟 1 號1007true1100神舟 1 號1008false1200c. 運行

21、結果(圖 4-3)程庫正在運行中一30%葉戲時問進程名血徐時間已運行坎數遴程狀態(tài)周轄時間0神州謂7001tme100200袖州謁6002true300袖州2號2001true400神州號5003true500神州曙1002true600神州謁4004true700袖州2號1003false700800神州號3005true900神州謁2006true1000榊卄號1007true1100袖州謂100gfalse1200圖4-3423結果顯示模塊a. 測試數據無需測試數據b. 預期輸出文件正常打開,在終端顯示相關控制信息及容;在用戶界面顯示文件進程運行時 的信息容及運行的結果;合法的輸出;c.

22、運行結果(圖4-4)B顯示運行結果因因延行結果的顯示:進程名則余時閻已運行次數逬程彳徳周轉時間07001true100200神舟塢5002true300神州2號2C01true400抽舟謂5003true500袖州2號1002true600神舟1號4004true7C0神州2號1C03false70080 &抽舟謂3005true9002006true1 JOO神舟1號1007true1100神舟佬1003false1200打開文件圖4-44.3遇到的問題1)布局管理器實現(xiàn)頁面布局時,不能很好的顯示在桌面上。對GridLayout,FlowLayout, BorderLayout,CradLy

23、aout等布局管理器還不是很熟悉。2)對系統(tǒng)結構的劃分不當,沒有實現(xiàn)界面和數據處理的分離;3)對用戶的非法操作做了處理,但并沒有完全找出處理錯誤操作的方法;4)沒有充分理解將要設計的系統(tǒng)結構,系統(tǒng)層次結構不夠清晰;第五章 自我評價與總結通過本次課程設計,我對操作系統(tǒng)中的處理機的調度算法有了進一步的理解。在 對時間片輪轉算法進行設計實現(xiàn)的過程中, 自己同時也自學了 JavaGUI 編程,對圖形 用戶界面編程從理論上的認識走向了親身實踐。 只有親自動手編程才能對所學到的容 有深刻的理解,所謂“實踐出真知” 。此處理機管理模擬系統(tǒng)能夠方便直觀地顯示出 基于時間片輪轉調度算法的模擬調度過程, 方便了該系統(tǒng)用

溫馨提示

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

評論

0/150

提交評論