操作系統(tǒng)課程設(shè)計(jì)時(shí)間片輪轉(zhuǎn)算法java實(shí)現(xiàn)_第1頁
操作系統(tǒng)課程設(shè)計(jì)時(shí)間片輪轉(zhuǎn)算法java實(shí)現(xiàn)_第2頁
操作系統(tǒng)課程設(shè)計(jì)時(shí)間片輪轉(zhuǎn)算法java實(shí)現(xiàn)_第3頁
操作系統(tǒng)課程設(shè)計(jì)時(shí)間片輪轉(zhuǎn)算法java實(shí)現(xiàn)_第4頁
操作系統(tǒng)課程設(shè)計(jì)時(shí)間片輪轉(zhuǎn)算法java實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)校代碼: 10128學(xué) 號(hào): 201020205056課程設(shè)計(jì)題 目:處理機(jī)管理模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 學(xué)生姓名: 學(xué) 院:信息工程學(xué)院系 別:軟件工程系 專 業(yè):軟件工程 班 級(jí): 指導(dǎo)教師:副教授 講師2013年1月8日內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書(四)學(xué)院(系):信息學(xué)院軟件工程系 課程名稱:操作系統(tǒng)課程設(shè)計(jì) 指導(dǎo)教師(簽名): 專業(yè)班級(jí): 學(xué)生姓名: 學(xué)號(hào): 一、課程設(shè)計(jì)題目處理機(jī)管理二、課程設(shè)計(jì)的目的學(xué)生通過設(shè)計(jì)一個(gè)模擬單處理機(jī)調(diào)度的算法,以鞏固和加深處理機(jī)調(diào)度的概念。使學(xué)生初步具有研究、設(shè)計(jì)、編制和調(diào)試操作系統(tǒng)模塊的能力。 三、課程設(shè)計(jì)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計(jì)

2、要求、工作量要求等) 原始數(shù)據(jù):進(jìn)程控制塊PCB結(jié)構(gòu)體。 技術(shù)參數(shù):Windows XP系統(tǒng),VC+6.0開發(fā)工具。設(shè)計(jì)要求: 1 設(shè)計(jì)基于時(shí)間片輪轉(zhuǎn)法的處理機(jī)調(diào)度算法;2 或設(shè)計(jì)基于先來先服務(wù)或基于優(yōu)先權(quán)的處理機(jī)調(diào)度算法;3 畫出以上算法流程圖;4 編程實(shí)現(xiàn)算法功能;5編寫課程設(shè)計(jì)說明書。 工作量要求:完成以上設(shè)計(jì)要求中的所有算法功能。四、工作進(jìn)度安排 周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設(shè)計(jì);周三:編制、調(diào)試程序;周四:測(cè)試系統(tǒng),形成設(shè)計(jì)結(jié)論,編寫課設(shè)報(bào)告;周五:系統(tǒng)及材料驗(yàn)收,課設(shè)答辯。五、主要參考文獻(xiàn)1 張堯?qū)W編計(jì)算機(jī)操作系統(tǒng)教程(第三版)習(xí)題解答與實(shí)驗(yàn)指導(dǎo)北京:清華大

3、學(xué)出版社,20062 湯子瀛主編計(jì)算機(jī)操作系統(tǒng)(第三版)西安:西安電子科技大學(xué)出版社,2001 3 張坤等編操作系統(tǒng)實(shí)驗(yàn)教程北京:清華大學(xué)出版社,2008審核批準(zhǔn)意見系(教研室)主任(簽字) 摘要操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的關(guān)鍵組成部分,負(fù)責(zé)管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設(shè)備、操作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本任務(wù)。對(duì)于不同的系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法,如在批處理系統(tǒng)中,為照顧為數(shù)眾多的短作業(yè),采用短作業(yè)優(yōu)先調(diào)度算法;在分時(shí)系統(tǒng)中,為保證系統(tǒng)具有合理的響應(yīng)時(shí)間,采用時(shí)間片輪轉(zhuǎn)法進(jìn)行調(diào)度。采用算法時(shí),則要考慮多方面因素,以便達(dá)到最佳效果。本次課程設(shè)計(jì)采用時(shí)間片輪轉(zhuǎn)調(diào)度

4、算法來實(shí)現(xiàn)模擬進(jìn)程調(diào)度任務(wù)的執(zhí)行過程。用Java模擬進(jìn)程調(diào)度過程,可以方便地將運(yùn)行結(jié)果直觀地表示出來。Java語言獨(dú)有的多線程操作,可以實(shí)現(xiàn)許多其他語言不能實(shí)現(xiàn)的功能,極大地方便了程序開發(fā)人員對(duì)程序的開發(fā)。此外,利用JavaGUI編程,可以使系統(tǒng)提供的界面更加友好。實(shí)驗(yàn)中,應(yīng)用文件I/O操作、線程、AWT、Swing、內(nèi)部類、接口、異常處理等技術(shù),開發(fā)此系統(tǒng)。關(guān)鍵字:時(shí)間片輪轉(zhuǎn); Java編程; GUI圖形用戶界面; 文件操作;AbstractThe operating system is a key component of the computer system, responsible

5、for the management 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 system target, computers usually use different scheduling algorith

6、m, such as in a Batch Processing System, in order to take care of a lot of short operation, using Short Job First algorithm;In systems with time sharing, to ensure the system has reasonable response time, need time slice Round Robin algorithm for scheduling. The algorithm, we should consider various

7、 factors, in order to achieve the best effect.This Course Design uses time slice Round Robin algorithm to simulate the process scheduling task execution process.With Java simulation process scheduling process, which can be conveniently will run results intuitively said out.In addition, the use of Ja

8、vaGUI programming, can make the system to provide the interface more friendly.Experiments, application file I/O operation, threads, AWT, Swing, internal class, interface, abnormal processing technology, the development of this system.Keywords: time slice Round Robin; Java Programming; Graphical User

9、 Interface; File Operation;目錄第一章 問題分析11.1設(shè)計(jì)目的11.2設(shè)計(jì)目標(biāo)11.2.1問題描述11.2.2基本要求11.3設(shè)計(jì)思想和運(yùn)行環(huán)境1第二章 概要設(shè)計(jì)32.1系統(tǒng)結(jié)構(gòu)32.1.1系統(tǒng)結(jié)構(gòu)層次圖32.1.2系統(tǒng)功能說明32.2算法描述4第三章 詳細(xì)設(shè)計(jì)53.1系統(tǒng)程序流程圖53.2內(nèi)部接口設(shè)計(jì)73.2.1系統(tǒng)框架接口run()73.2.3創(chuàng)建進(jìn)程接口createFrame()83.2.4運(yùn)行程序接口runFrame()83.2.5顯示結(jié)果接口resultFrame()93.3用戶接口9第四章 系統(tǒng)實(shí)現(xiàn)114.1編碼實(shí)現(xiàn)114.2單元測(cè)試114.2.1創(chuàng)建進(jìn)

10、程模塊114.2.2運(yùn)行程序模塊134.2.3結(jié)果顯示模塊144.3遇到的問題15第五章 自我評(píng)價(jià)與總結(jié)16參考文獻(xiàn)17第1章 問題分析1.1設(shè)計(jì)目的在多道程序或多任務(wù)系統(tǒng)中,系統(tǒng)同時(shí)處于就緒態(tài)的進(jìn)程有若干個(gè)。也就是說能運(yùn)行的進(jìn)程數(shù)遠(yuǎn)遠(yuǎn)大于處理機(jī)個(gè)數(shù)。為了使系統(tǒng)中的各進(jìn)程能有條不紊地運(yùn)行,必須選擇某種調(diào)度策略,以選擇一進(jìn)程占有處理機(jī)。要求設(shè)計(jì)一個(gè)模擬單處理機(jī)調(diào)度的算法,以鞏固和加深處理機(jī)調(diào)度的概念。1.2設(shè)計(jì)目標(biāo)問題描述處理機(jī)管理是操作系統(tǒng)中非常重要的部分。為深入理解處理機(jī)調(diào)度部分的功能,設(shè)計(jì)一個(gè)按時(shí)間片輪轉(zhuǎn)調(diào)度CPU的算法,模擬實(shí)現(xiàn)處理機(jī)的調(diào)度?;疽髸r(shí)間片輪轉(zhuǎn)調(diào)度CPU的算法是分時(shí)系統(tǒng)采

11、用的典型算法,把CPU的執(zhí)行時(shí)間分成若干個(gè)一定大小的時(shí)間片輪流的分配給就緒隊(duì)列的各個(gè)進(jìn)程,讓各就緒進(jìn)程按指定的順序分別占用CPU的一個(gè)時(shí)間片輪流執(zhí)行下去,直至完成。要求定義進(jìn)程控制塊PCB的結(jié)構(gòu),并為每個(gè)進(jìn)程任意確定一個(gè)要求運(yùn)行時(shí)間和到達(dá)時(shí)間,按照進(jìn)程到達(dá)的先后順序排成一個(gè)循環(huán)隊(duì)列。設(shè)計(jì)按時(shí)間片輪轉(zhuǎn)的進(jìn)程調(diào)度算法。1.3設(shè)計(jì)思想和運(yùn)行環(huán)境a. 設(shè)計(jì)思想(1) 假設(shè)系統(tǒng)有5個(gè)進(jìn)程,每個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊Process來代表。Process的結(jié)構(gòu)如圖1-1所示。對(duì)PCB控制塊進(jìn)行包裝,形成循環(huán)鏈表結(jié)點(diǎn)ProcessNode,鏈表結(jié)點(diǎn)ProcessNode如圖1-2所示。圖1-2進(jìn)程控制塊結(jié)點(diǎn)圖1

12、-1進(jìn)程控制塊Pname:進(jìn)程名runTime:進(jìn)程運(yùn)行時(shí)間arriveTime:到達(dá)時(shí)間State:進(jìn)程狀態(tài)cpuTime:運(yùn)行時(shí)間cpcRound:已運(yùn)行次數(shù)startTime:進(jìn)程開始時(shí)間每個(gè)屬性的set,get方法proecss:Process類型進(jìn)程控制塊Next :ProcessNode類型指針每個(gè)屬性的set,get方法pntmphead圖1-3循環(huán)鏈表(2) 為每個(gè)進(jìn)程從模擬的系統(tǒng)中指定一個(gè)要求運(yùn)行時(shí)間和到達(dá)時(shí)間。(3) 按照進(jìn)程到達(dá)的先后順序排成一個(gè)循環(huán)隊(duì)列,再設(shè)一個(gè)隊(duì)首指針head指向第一個(gè)到達(dá)進(jìn)程的首址。(4) 執(zhí)行處理機(jī)調(diào)度時(shí),從隊(duì)列的第一個(gè)進(jìn)程開始,用pntmp指針順

13、序選擇可執(zhí)行的進(jìn)程執(zhí)行。(5) 由于本實(shí)踐是模擬算法,所以對(duì)被選中進(jìn)程并不實(shí)際啟動(dòng)運(yùn)行,而只是執(zhí)行:運(yùn)行時(shí)間加100和輸出當(dāng)前運(yùn)行進(jìn)程的相關(guān)信息。用這兩個(gè)操作來模擬進(jìn)程的一次運(yùn)行。b. 運(yùn)行環(huán)境編程語言:Java語言工具:JDK1.6.0_26、Windows 7系統(tǒng)以及MyEclipse6.0.1等第2章 概要設(shè)計(jì)2.1系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)層次圖輸入進(jìn)程信息創(chuàng)建結(jié)點(diǎn)插入接點(diǎn)輸入進(jìn)程信息創(chuàng)建結(jié)點(diǎn)插入接點(diǎn)處理機(jī)管理模擬系統(tǒng)運(yùn)行程序顯示結(jié)果創(chuàng)建進(jìn)程輸入進(jìn)程信息創(chuàng)建結(jié)點(diǎn)插入接點(diǎn)圖2-1處理機(jī)管理系統(tǒng)層次圖系統(tǒng)功能說明a. 創(chuàng)建進(jìn)程模塊:創(chuàng)建進(jìn)程模塊在輸入進(jìn)程頁面輸入要?jiǎng)?chuàng)建的進(jìn)程數(shù),輸入后逐個(gè)將進(jìn)程信息錄

14、入插入到就緒隊(duì)列中,完成進(jìn)程的創(chuàng)建過程。b. 運(yùn)行程序模塊:此模塊實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)調(diào)度算法,從就緒隊(duì)列中取出進(jìn)程結(jié)點(diǎn),并模擬運(yùn)行該進(jìn)程,反復(fù)循環(huán),直至進(jìn)程全部運(yùn)行結(jié)束。每次運(yùn)行進(jìn)程后,將運(yùn)行信息存入到文件中,實(shí)現(xiàn)信息的持久化。方便信息的記錄,系統(tǒng)功能的分析和出錯(cuò)時(shí)便于檢查錯(cuò)誤。c. 顯示結(jié)果模塊:從文件中讀入進(jìn)程運(yùn)行的結(jié)果,在圖形界面下操作,提供友好的用戶操作方式,方便直觀的了解模擬進(jìn)程的調(diào)度過程,便于數(shù)據(jù)分析和研究。2.2算法描述a. 在創(chuàng)建進(jìn)程界面將進(jìn)程信息錄入,將進(jìn)程控制塊進(jìn)行包裝,插入到循環(huán)隊(duì)列中;b. 當(dāng)運(yùn)行程序時(shí),每次從就緒隊(duì)列隊(duì)首取出一個(gè)進(jìn)程pntmp,判斷是pntmp進(jìn)程否到達(dá)。

15、到達(dá)則運(yùn)行該進(jìn)程;c. 若pntmp進(jìn)程為首次運(yùn)行,則記錄進(jìn)程開始運(yùn)行時(shí)間startTime;d. 運(yùn)行完pntmp進(jìn)程后,輸出進(jìn)程運(yùn)行信息,并將此結(jié)點(diǎn)移至隊(duì)尾;e. 若循環(huán)隊(duì)列長(zhǎng)度size>0,則返回執(zhí)行b;否則結(jié)束程序;第3章 詳細(xì)設(shè)計(jì)3.1系統(tǒng)程序流程圖YYN開始顯示主界面輸入進(jìn)程數(shù)numi=0i<num輸入進(jìn)程名pname;運(yùn)行時(shí)間rumtime 到達(dá)時(shí)間arrivetime插入到循環(huán)隊(duì)列中從隊(duì)列首部head取出一個(gè)進(jìn)程pntmp判斷pntmp進(jìn)程是否到達(dá)當(dāng)前進(jìn)程是否已完成運(yùn)行pntmp進(jìn)程,運(yùn)行時(shí)間-100abcbNYN圖3-1程序流程圖運(yùn)行結(jié)束a查找下一個(gè)進(jìn)程b當(dāng)前進(jìn)程

16、是否已完成置當(dāng)前進(jìn)程狀態(tài)為falseNc是否有下一個(gè)進(jìn)程YY顯示運(yùn)行結(jié)果N3.2內(nèi)部接口設(shè)計(jì)3.2.1系統(tǒng)框架接口run()public void run()/創(chuàng)建系統(tǒng)主頁的框架/1.創(chuàng)建框架frame/2.設(shè)置相關(guān)屬性3.2.2增加面板組件接口addComponentsTpPane()public static void addComponentsTpPane(Container pane)/1.設(shè)置布局方式/2.創(chuàng)建系統(tǒng)功能按鈕/3.注冊(cè)按鈕/4.監(jiān)聽按鈕動(dòng)作,并產(chǎn)生相應(yīng)操作,執(zhí)行對(duì)應(yīng)的功能3.2.3創(chuàng)建進(jìn)程接口createFrame()public static void createF

17、rame()class createInputFrame extends Frame implements ActionListener/局部?jī)?nèi)部類實(shí)現(xiàn)創(chuàng)建進(jìn)程的界面/窗體按鈕等屬性的定義public createInputFrame(String str)/創(chuàng)建進(jìn)程輸入窗口void panelCreateProIndex()/進(jìn)程輸入首頁面void panelCreateProInput()/進(jìn)程信息輸入頁面public void actionPerformed(ActionEvent e) /監(jiān)聽器 createInputFrame cf=new createInputFrame(&quo

18、t;進(jìn)程創(chuàng)建");/實(shí)例化3.2.4運(yùn)行程序接口runFrame()public static void runFrame()/1.創(chuàng)建運(yùn)行窗口界面int currenttime=0;/記錄系統(tǒng)當(dāng)前時(shí)間while(size!=0)/2.運(yùn)行時(shí)間片輪轉(zhuǎn)調(diào)度算法,并記錄信息 try /3將運(yùn)行信息存入文件String file="D:JavaProcessormyfile.txt" catch (IOException e1) 3.2.5顯示結(jié)果接口resultFrame()public static void resultFrame()/1.創(chuàng)建顯示結(jié)果窗體JFra

19、me jf=new JFrame("顯示運(yùn)行結(jié)果");/2.打開文件final JTextArea jta=new JTextArea(16,50);openbutton.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) /3.將文件內(nèi)容讀到文本框中);3.3用戶接口用戶啟動(dòng)此處理機(jī)管理模擬系統(tǒng)后,即可方便的進(jìn)行操作。以下為用戶使用此軟件時(shí)的圖形接口:a. 系統(tǒng)主界面(圖3-2):圖3-2圖3-3b. 進(jìn)程創(chuàng)建頁面(圖3-3):第4章 系統(tǒng)實(shí)現(xiàn)4.1編碼實(shí)現(xiàn)系統(tǒng)采

20、用高級(jí)語言Java設(shè)計(jì)實(shí)現(xiàn),程序容易閱讀,易于測(cè)試,容易調(diào)試,方便維護(hù)。并且Java為當(dāng)今最流行的編程語言,有其獨(dú)到的優(yōu)點(diǎn);程序代碼符合基本編程規(guī)范,方法,屬性命名能體現(xiàn)程序的功能。4.2單元測(cè)試4.2.1創(chuàng)建進(jìn)程模塊a. 測(cè)試數(shù)據(jù)進(jìn)程數(shù)num: 2進(jìn)程名 進(jìn)程運(yùn)行時(shí)間進(jìn)程到達(dá)時(shí)間神舟1號(hào)8000神舟2號(hào)300100b. 預(yù)期輸出 無輸出結(jié)果,但創(chuàng)建進(jìn)程模塊將輸入數(shù)據(jù)存入內(nèi)存,并結(jié)束輸入返回主界面。c. 運(yùn)行結(jié)果1 進(jìn)程數(shù)輸入界面(圖4-1):圖4-12 進(jìn)程信息輸入界面(圖4-2):圖4-24.2.2運(yùn)行程序模塊a. 測(cè)試數(shù)據(jù)進(jìn)程數(shù)num:2進(jìn)程名 進(jìn)程運(yùn)行時(shí)間進(jìn)程到達(dá)時(shí)間神舟1號(hào)8000神

21、舟2號(hào)300100b. 預(yù)期輸出 系統(tǒng)時(shí)間進(jìn)程名剩余時(shí)間已運(yùn)行次數(shù)進(jìn)程狀態(tài)周轉(zhuǎn)時(shí)間 0神舟1號(hào)7001true 100 200神舟1號(hào)6002true 300神州2號(hào)2001true 400神舟1號(hào)5003true 500神州2號(hào)1002true 600神舟1號(hào)4004true 700神州2號(hào)1003false700 800神舟1號(hào)3005true 900神舟1號(hào)2006true 1000神舟1號(hào)1007true 1100神舟1號(hào)1008false1200 c. 運(yùn)行結(jié)果(圖4-3)圖4-34.2.3結(jié)果顯示模塊a. 測(cè)試數(shù)據(jù)無需測(cè)試數(shù)據(jù)b. 預(yù)期輸出文件正常打開,在終端顯示相關(guān)控制信息及內(nèi)容

22、;在用戶界面顯示文件內(nèi)進(jìn)程運(yùn)行時(shí)的信息內(nèi)容及運(yùn)行的結(jié)果;合法的輸出;c. 運(yùn)行結(jié)果(圖4-4)圖4-44.3遇到的問題1) 布局管理器實(shí)現(xiàn)頁面布局時(shí),不能很好的顯示在桌面上。對(duì)GridLayout,F(xiàn)lowLayout,BorderLayout,CradLyaout等布局管理器還不是很熟悉。2) 對(duì)系統(tǒng)結(jié)構(gòu)的劃分不當(dāng),沒有實(shí)現(xiàn)界面和數(shù)據(jù)處理的分離;3) 對(duì)用戶的非法操作做了處理,但并沒有完全找出處理錯(cuò)誤操作的方法;4) 沒有充分理解將要設(shè)計(jì)的系統(tǒng)結(jié)構(gòu),系統(tǒng)層次結(jié)構(gòu)不夠清晰;第5章 自我評(píng)價(jià)與總結(jié)通過本次課程設(shè)計(jì),我對(duì)操作系統(tǒng)中的處理機(jī)的調(diào)度算法有了進(jìn)一步的理解。在對(duì)時(shí)間片輪轉(zhuǎn)算法進(jìn)行設(shè)計(jì)實(shí)現(xiàn)的過程中,自己同時(shí)也自學(xué)了JavaGUI編程,對(duì)圖形用戶界面編程從理論上的認(rèn)識(shí)走向了親身實(shí)踐。只有親自動(dòng)手編程才能對(duì)所學(xué)到的內(nèi)容有深刻的理解,所謂“實(shí)踐出真知”。此處理機(jī)管理模擬系統(tǒng)能夠方便直觀地顯示出基于時(shí)間片輪轉(zhuǎn)調(diào)度算法的模擬調(diào)度過程,方便了該系統(tǒng)用戶的處理機(jī)調(diào)度算法的學(xué)習(xí)和研究實(shí)驗(yàn)過程中,查閱了大量的JavaAPI相關(guān)文檔和處理機(jī)調(diào)度模擬算

溫馨提示

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

評(píng)論

0/150

提交評(píng)論