版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計</b></p><p> 題 目:處理機管理模擬系統(tǒng)的設計與實現(xiàn) </p><p><b> 學生姓名: </b></p><p> 學 院:信息工程學院</p><p> 系 別:軟件工程系 </p><p
2、> 專 業(yè):軟件工程 </p><p><b> 班 級: </b></p><p><b> 指導教師:副教授</b></p><p><b> 講師</b></p><p><b> 2013年1月8日</b></p>
3、;<p> 課程設計任務書(四)</p><p> 學院(系):信息學院軟件工程系 課程名稱:操作系統(tǒng)課程設計 指導教師(簽名): </p><p> 專業(yè)班級: 學生姓名: 學號: </p><p><b> 摘要<
4、;/b></p><p> 操作系統(tǒng)是計算機系統(tǒng)的關鍵組成部分,負責管理與配置內存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設備、操作網(wǎng)絡與管理文件系統(tǒng)等基本任務。對于不同的系統(tǒng)和系統(tǒng)目標,通常采用不同的調度算法,如在批處理系統(tǒng)中,為照顧為數(shù)眾多的短作業(yè),采用短作業(yè)優(yōu)先調度算法;在分時系統(tǒng)中,為保證系統(tǒng)具有合理的響應時間,采用時間片輪轉法進行調度。采用算法時,則要考慮多方面因素,以便達到最佳效果。本次課
5、程設計采用時間片輪轉調度算法來實現(xiàn)模擬進程調度任務的執(zhí)行過程。</p><p> 用Java模擬進程調度過程,可以方便地將運行結果直觀地表示出來。Java語言獨有的多線程操作,可以實現(xiàn)許多其他語言不能實現(xiàn)的功能,極大地方便了程序開發(fā)人員對程序的開發(fā)。此外,利用JavaGUI編程,可以使系統(tǒng)提供的界面更加友好。實驗中,應用文件I/O操作、線程、AWT、Swing、內部類、接口、異常處理等技術,開發(fā)此系統(tǒng)。<
6、/p><p> 關鍵字:時間片輪轉; Java編程; GUI圖形用戶界面; 文件操作;</p><p><b> Abstract</b></p><p> The operating system is a key component of the computer system, responsible for the managemen
7、t and configuration memory, decided to system resources supply and demand priority, control input and output equipment, operation and management of network file system, and other basic tasks.For different systems and sys
8、tem target, computers usually use different scheduling algorithm, such as in a Batch Processing System, in order to take care of a lot of short operation, using Short Job First algorithm;</p><p> With Java
9、simulation process scheduling process, which can be conveniently will run results intuitively said out.In addition, the use of JavaGUI programming, can make the system to provide the interface more friendly.Experiments,
10、application file I/O operation, threads, AWT, Swing, internal class, interface, abnormal processing technology, the development of this system.</p><p> Keywords: time slice Round Robin; Java Programming; Gr
11、aphical User Interface; </p><p> File Operation;</p><p><b> 目錄</b></p><p> 第一章 問題分析1</p><p><b> 1.1設計目的1</b></p><p><b>
12、 1.2設計目標1</b></p><p> 1.2.1問題描述1</p><p> 1.2.2基本要求1</p><p> 1.3設計思想和運行環(huán)境1</p><p> 第二章 概要設計3</p><p><b> 2.1系統(tǒng)結構3</b></p>
13、<p> 2.1.1系統(tǒng)結構層次圖3</p><p> 2.1.2系統(tǒng)功能說明3</p><p><b> 2.2算法描述4</b></p><p> 第三章 詳細設計5</p><p> 3.1系統(tǒng)程序流程圖5</p><p> 3.2內部接口設計7<
14、/p><p> 3.2.1系統(tǒng)框架接口run()7</p><p> 3.2.3創(chuàng)建進程接口createFrame()8</p><p> 3.2.4運行程序接口runFrame()8</p><p> 3.2.5顯示結果接口resultFrame()9</p><p><b> 3.3用戶接口
15、9</b></p><p> 第四章 系統(tǒng)實現(xiàn)11</p><p> 4.1編碼實現(xiàn)11</p><p> 4.2單元測試11</p><p> 4.2.1創(chuàng)建進程模塊11</p><p> 4.2.2運行程序模塊13</p><p> 4.2.3結果顯示模塊
16、14</p><p> 4.3遇到的問題15</p><p> 第五章 自我評價與總結16</p><p><b> 參考文獻17</b></p><p><b> 問題分析</b></p><p><b> 1.1設計目的</b>&l
17、t;/p><p> 在多道程序或多任務系統(tǒng)中,系統(tǒng)同時處于就緒態(tài)的進程有若干個。也就是說能運行的進程數(shù)遠遠大于處理機個數(shù)。為了使系統(tǒng)中的各進程能有條不紊地運行,必須選擇某種調度策略,以選擇一進程占有處理機。要求設計一個模擬單處理機調度的算法,以鞏固和加深處理機調度的概念。</p><p><b> 1.2設計目標</b></p><p><
18、;b> 1.2.1問題描述</b></p><p> 處理機管理是操作系統(tǒng)中非常重要的部分。為深入理解處理機調度部分的功能,設計一個按時間片輪轉調度CPU的算法,模擬實現(xiàn)處理機的調度。</p><p><b> 1.2.2基本要求</b></p><p> 時間片輪轉調度CPU的算法是分時系統(tǒng)采用的典型算法,把CPU的
19、執(zhí)行時間分成若干個一定大小的時間片輪流的分配給就緒隊列的各個進程,讓各就緒進程按指定的順序分別占用CPU的一個時間片輪流執(zhí)行下去,直至完成。要求定義進程控制塊PCB的結構,并為每個進程任意確定一個要求運行時間和到達時間,按照進程到達的先后順序排成一個循環(huán)隊列。設計按時間片輪轉的進程調度算法。</p><p> 1.3設計思想和運行環(huán)境</p><p><b> 設計思想<
20、;/b></p><p> (1) 假設系統(tǒng)有5個進程,每個進程用一個進程控制塊Process來代表。Process的結構如圖1-1所示。對PCB控制塊進行包裝,形成循環(huán)鏈表結點ProcessNode,鏈表結點ProcessNode如圖1-2所示。</p><p> (2) 為每個進程從模擬的系統(tǒng)中指定一個要求運行時間和到達時間。</p><p> (3
21、) 按照進程到達的先后順序排成一個循環(huán)隊列,再設一個隊首指針head指向第一個到達進程的首址。</p><p> (4) 執(zhí)行處理機調度時,從隊列的第一個進程開始,用pntmp指針順序選擇可執(zhí)行的進程執(zhí)行。</p><p> (5) 由于本實踐是模擬算法,所以對被選中進程并不實際啟動運行,而只是執(zhí)行:運行時間加100和輸出當前運行進程的相關信息。用這兩個操作來模擬進程的一次運行。<
22、;/p><p><b> 運行環(huán)境</b></p><p> 編程語言:Java語言</p><p> 工具:JDK1.6.0_26、Windows 7系統(tǒng)以及MyEclipse6.0.1等</p><p><b> 概要設計</b></p><p><b>
23、 2.1系統(tǒng)結構</b></p><p> 2.1.1系統(tǒng)結構層次圖</p><p> 2.1.2系統(tǒng)功能說明</p><p><b> 創(chuàng)建進程模塊:</b></p><p> 創(chuàng)建進程模塊在輸入進程頁面輸入要創(chuàng)建的進程數(shù),輸入后逐個將進程信息錄入插入到就緒隊列中,完成進程的創(chuàng)建過程。</p&
24、gt;<p><b> 運行程序模塊:</b></p><p> 此模塊實現(xiàn)時間片輪轉調度算法,從就緒隊列中取出進程結點,并模擬運行該進程,反復循環(huán),直至進程全部運行結束。每次運行進程后,將運行信息存入到文件中,實現(xiàn)信息的持久化。方便信息的記錄,系統(tǒng)功能的分析和出錯時便于檢查錯誤。</p><p><b> 顯示結果模塊:</b&g
25、t;</p><p> 從文件中讀入進程運行的結果,在圖形界面下操作,提供友好的用戶操作方式,方便直觀的了解模擬進程的調度過程,便于數(shù)據(jù)分析和研究。</p><p><b> 2.2算法描述</b></p><p> 在創(chuàng)建進程界面將進程信息錄入,將進程控制塊進行包裝,插入到循環(huán)隊列中;</p><p> 當運行
26、程序時,每次從就緒隊列隊首取出一個進程pntmp,判斷是pntmp進程否到達。到達則運行該進程;</p><p> 若pntmp進程為首次運行,則記錄進程開始運行時間startTime;</p><p> 運行完pntmp進程后,輸出進程運行信息,并將此結點移至隊尾;</p><p> 若循環(huán)隊列長度size>0,則返回執(zhí)行b;否則結束程序;</p
27、><p><b> 詳細設計</b></p><p> 3.1系統(tǒng)程序流程圖</p><p><b> 3.2內部接口設計</b></p><p> 3.2.1系統(tǒng)框架接口run()</p><p> public void run(){//創(chuàng)建系統(tǒng)主頁的框架<
28、;/p><p> //1.創(chuàng)建框架frame</p><p> //2.設置相關屬性</p><p><b> }</b></p><p> 3.2.2增加面板組件接口addComponentsTpPane()</p><p> public static void addComponent
29、sTpPane(Container pane){</p><p> //1.設置布局方式</p><p> //2.創(chuàng)建系統(tǒng)功能按鈕</p><p><b> //3.注冊按鈕</b></p><p> //4.監(jiān)聽按鈕動作,并產生相應操作,執(zhí)行對應的功能</p><p><b>
30、; }</b></p><p> 3.2.3創(chuàng)建進程接口createFrame()</p><p> public static void createFrame(){</p><p> class createInputFrame extends Frame implements ActionListener{//局部內部類實現(xiàn)創(chuàng)建進程的
31、界面</p><p> //窗體按鈕等屬性的定義</p><p> public createInputFrame(String str){//創(chuàng)建進程輸入窗口</p><p><b> }</b></p><p> void panelCreateProIndex(){//進程輸入首頁面</p&
32、gt;<p><b> }</b></p><p> void panelCreateProInput(){//進程信息輸入頁面</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {//監(jiān)聽器 <
33、/p><p><b> }</b></p><p><b> }</b></p><p> createInputFrame cf=new createInputFrame("進程創(chuàng)建");//實例化</p><p><b> }</b><
34、/p><p> 3.2.4運行程序接口runFrame()</p><p> public static void runFrame(){//1.創(chuàng)建運行窗口界面</p><p> int currenttime=0;//記錄系統(tǒng)當前時間</p><p> while(size!=0){</p><p> /
35、/2.運行時間片輪轉調度算法,并記錄信息</p><p><b> }</b></p><p> try {//3將運行信息存入文件</p><p> String file="D:\\Java\\Processor\\myfile.txt";</p><p> } catch
36、 (IOException e1) {</p><p><b> }</b></p><p><b> }</b></p><p> 3.2.5顯示結果接口resultFrame()</p><p> public static void resultFrame(){</p>
37、<p> //1.創(chuàng)建顯示結果窗體</p><p> JFrame jf=new JFrame("顯示運行結果");</p><p><b> //2.打開文件</b></p><p> final JTextArea jta=new JTextArea(16,50);</p><p
38、> openbutton.addActionListener(new ActionListener(){</p><p> public void actionPerformed(ActionEvent e) {</p><p> //3.將文件內容讀到文本框中</p><p><b> }</b></p><
39、p><b> });</b></p><p><b> }</b></p><p><b> 3.3用戶接口</b></p><p> 用戶啟動此處理機管理模擬系統(tǒng)后,即可方便的進行操作。以下為用戶使用此軟件時的圖形接口:</p><p> 系統(tǒng)主界面(圖3-2
40、):</p><p> 進程創(chuàng)建頁面(圖3-3):</p><p><b> 系統(tǒng)實現(xiàn)</b></p><p><b> 4.1編碼實現(xiàn)</b></p><p> 系統(tǒng)采用高級語言Java設計實現(xiàn),程序容易閱讀,易于測試,容易調試,方便維護。并且Java為當今最流行的編程語言,有其獨到的優(yōu)點
41、;程序代碼符合基本編程規(guī)范,方法,屬性命名能體現(xiàn)程序的功能。</p><p><b> 4.2單元測試</b></p><p> 4.2.1創(chuàng)建進程模塊</p><p><b> 測試數(shù)據(jù)</b></p><p><b> 進程數(shù)num: 2</b></p>
42、<p> 進程名 進程運行時間進程到達時間</p><p> 神舟1號8000</p><p> 神舟2號300100</p><p><b> 預期輸出</b></p><p> 無輸出結果,但創(chuàng)建進程模塊將輸入數(shù)據(jù)存入內存,并結束輸入返回主界面。
43、</p><p><b> 運行結果</b></p><p> 進程數(shù)輸入界面(圖4-1):</p><p> 進程信息輸入界面(圖4-2):</p><p> 4.2.2運行程序模塊</p><p><b> 測試數(shù)據(jù)</b></p><p&g
44、t;<b> 進程數(shù)num:2</b></p><p> 進程名 進程運行時間進程到達時間</p><p> 神舟1號8000</p><p> 神舟2號300100</p><p><b> 預期輸出</b></p><
45、p> 系統(tǒng)時間進程名剩余時間已運行次數(shù)進程狀態(tài)周轉時間</p><p> 0神舟1號7001true</p><p><b> 100</b></p><p> 200神舟1號6002true</p><p> 300神州2號2001t
46、rue</p><p> 400神舟1號5003true</p><p> 500神州2號1002true</p><p> 600神舟1號4004true</p><p> 700神州2號1003false700</p><p> 800
47、神舟1號3005true</p><p> 900神舟1號2006true</p><p> 1000神舟1號1007true</p><p> 1100神舟1號1008false1200 </p><p> 運行結果(圖4-3)</p><p>
48、 4.2.3結果顯示模塊</p><p><b> 測試數(shù)據(jù)</b></p><p><b> 無需測試數(shù)據(jù)</b></p><p><b> 預期輸出</b></p><p> 文件正常打開,在終端顯示相關控制信息及內容;在用戶界面顯示文件內進程運行時的信息內容及
49、運行的結果;合法的輸出;</p><p> 運行結果(圖4-4)</p><p><b> 4.3遇到的問題</b></p><p> 布局管理器實現(xiàn)頁面布局時,不能很好的顯示在桌面上。對GridLayout,F(xiàn)lowLayout,BorderLayout,CradLyaout等布局管理器還不是很熟悉。</p><p&
50、gt; 對系統(tǒng)結構的劃分不當,沒有實現(xiàn)界面和數(shù)據(jù)處理的分離;</p><p> 對用戶的非法操作做了處理,但并沒有完全找出處理錯誤操作的方法;</p><p> 沒有充分理解將要設計的系統(tǒng)結構,系統(tǒng)層次結構不夠清晰;</p><p><b> 自我評價與總結</b></p><p> 通過本次課程設計,我對操作
51、系統(tǒng)中的處理機的調度算法有了進一步的理解。在對時間片輪轉算法進行設計實現(xiàn)的過程中,自己同時也自學了JavaGUI編程,對圖形用戶界面編程從理論上的認識走向了親身實踐。只有親自動手編程才能對所學到的內容有深刻的理解,所謂“實踐出真知”。此處理機管理模擬系統(tǒng)能夠方便直觀地顯示出基于時間片輪轉調度算法的模擬調度過程,方便了該系統(tǒng)用戶的處理機調度算法的學習和研究</p><p> 實驗過程中,查閱了大量的JavaAPI
52、相關文檔和處理機調度模擬算法,最終形成自己的思路,完成了系統(tǒng)的功能定義和編碼測試。尤其是在編碼測試環(huán)節(jié),配合控制臺的顯示功能,能及時發(fā)現(xiàn)程序中的錯誤,處理異常和程序的邏輯錯誤。在整個課程設計過程中,先后學習新的知識并鞏固了已學到的進程調度,文件操作,異常處理機制,Java的高級類特性,面向對象程序設計,線程操作的相關技術和知識。此外,編寫處理機管理模擬系統(tǒng)相關文檔也使我對規(guī)范化編碼和書寫相關說明文檔進一步規(guī)范和熟練。在實驗過程中也遇到了
53、許多的問題,有的至今也沒有找出好的解決方案。例如,自己過早的急于編碼實現(xiàn),造成了系統(tǒng)的結構層次不夠清晰,系統(tǒng)界面與系統(tǒng)功能的實現(xiàn)為實現(xiàn)分離,為以后設計實現(xiàn)軟件提供了很好的警示作用。</p><p> 短短一周的課程設計,我學到了用java編碼實現(xiàn)自己從未做過的一些實踐,提高了自己的動手能力,反復修改代碼的過程中提高了自己獨立思考問題的能力。在此特別感謝各位老師的指導,有了老師們的支持,才會使我更加圓滿的完成此次
54、課題的設計。不懈的努力使自己向實用型人才更邁進了一步,增加自己的實力,增加了自己的競爭力。</p><p><b> 參考文獻</b></p><p> 1>java API 文檔 《JDK_API_1.6.0_CN.CHM》 ;</p><p> 2>趙俊生、馬志強著 《內蒙古工業(yè)大學課程設計說明書書寫規(guī)范》2013年1月&
55、lt;/p><p> 3>劉中兵著 《Java高手真經(jīng)(編程基礎卷:Java核心編程技術)》 北京:電子工業(yè)出版社2009年3月 </p><p> 4>鄭莉 王行言 馬素霞著 《Java語言程序設計》 北京:清華大學出版社 2010年7月</p><p> 5>張堯學著 《計算機操作系統(tǒng)教程(第三版)》 北京:清華大學出版社,2006年<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設計報告-基于時間片的輪轉調度算法
- 操作系統(tǒng)時間片輪轉算法與優(yōu)先級調度算法
- 操作系統(tǒng)課程設計——操作系統(tǒng)課程設計模擬操作系統(tǒng)
- 操作系統(tǒng)課程設計---銀行家算法實現(xiàn)
- 操作系統(tǒng)課程設計--模擬操作系統(tǒng)的實現(xiàn)
- linux操作系統(tǒng)課程設計—時間片法和優(yōu)先數(shù)法
- 操作系統(tǒng)課程設計-- 操作系統(tǒng)
- 進程調度算法 操作系統(tǒng)課程設計
- 操作系統(tǒng)課程設計--進程調度算法
- 操作系統(tǒng)課程設計---磁盤調度算法
- 操作系統(tǒng)課程設計---進程調度算法
- 進程調度算法操作系統(tǒng)課程設計
- 操作系統(tǒng)課程設計--進程調度算法
- 操作系統(tǒng)程序設計課程設計報告-操作系統(tǒng)模擬實現(xiàn)
- 操作系統(tǒng)課程設計---geekos操作系統(tǒng)的研究與實現(xiàn)
- 【2017年整理】操作系統(tǒng)時間片輪轉法進程cpu調度
- 操作系統(tǒng)課程設計-- geekos操作系統(tǒng)的研究與實現(xiàn)
- 操作系統(tǒng)課程設計報告---模擬實現(xiàn)銀行家算法
- 操作系統(tǒng)課程設計——銀行家算法的模擬實現(xiàn)
- 操作系統(tǒng)課程設計
評論
0/150
提交評論