操作系統(tǒng)課程設(shè)計(jì)要點(diǎn)_第1頁
操作系統(tǒng)課程設(shè)計(jì)要點(diǎn)_第2頁
操作系統(tǒng)課程設(shè)計(jì)要點(diǎn)_第3頁
操作系統(tǒng)課程設(shè)計(jì)要點(diǎn)_第4頁
操作系統(tǒng)課程設(shè)計(jì)要點(diǎn)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、n更多企業(yè)學(xué)院: 中小企業(yè)管理全能版183套講座+89700份資料總經(jīng)理、高層管理49套講座+16388份資料中層管理學(xué)院46套講座+6020份資料 國學(xué)智慧、易經(jīng)46套講座人力資源學(xué)院56套講座+27123份資料各階段員工培訓(xùn)學(xué)院77套講座+ 324份資料員工管理企業(yè)學(xué)院67套講座+ 8720份資料工廠生產(chǎn)管理學(xué)院52套講座+ 13920份資料財(cái)務(wù)管理學(xué)院53套講座+ 17945份資料 銷售經(jīng)理學(xué)院56套講座+ 14350份資料銷售人員培訓(xùn)學(xué)院72套講座+ 4879份資料操作系統(tǒng)課程設(shè)計(jì)(設(shè)備管理)目 錄一 引言1.1課程設(shè)計(jì)題目實(shí)現(xiàn)一個(gè)模擬操作系統(tǒng)。1.2課程設(shè)計(jì)的目的

2、通過模擬操作系統(tǒng)原理的實(shí)現(xiàn),加深對(duì)操作系統(tǒng)工作原理理解,進(jìn)一步了解操作系統(tǒng)的實(shí)現(xiàn)方法,并可練習(xí)合作完成系統(tǒng)的團(tuán)隊(duì)精神和提高程序設(shè)計(jì)能力。1.3小組人數(shù)建議34人一組共同完成模擬系統(tǒng)的實(shí)現(xiàn)。1.4編程語言建議使用VC、VB、C#、Java等Windows環(huán)境下的程序設(shè)計(jì)語言,以借助這些語言環(huán)境來模擬硬件的一些并行工作。1.5課程設(shè)計(jì)內(nèi)容模擬采用多道程序設(shè)計(jì)方法的單用戶操作系統(tǒng),該操作系統(tǒng)包括進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件管理和用戶接口四部分。1.6界面設(shè)計(jì)如圖圖1.1二 課程設(shè)計(jì)任務(wù)及要求2.1設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)設(shè)備管理分配程序,按先來先服務(wù)的算法,對(duì)設(shè)備進(jìn)行分配。2.2設(shè)計(jì)要求 設(shè)備管理主要

3、包括設(shè)備的分配和回收。(1)模擬系統(tǒng)中有A、B、C三種獨(dú)占型設(shè)備,A設(shè)備3個(gè),B設(shè)備2個(gè),C設(shè)備1個(gè)。(2)因?yàn)槟M系統(tǒng)比較小,因此只要設(shè)備表設(shè)計(jì)合理即可。(3)采用先來先服務(wù)分配策略,采用設(shè)備的安全分配方式。(4)屏幕顯示每個(gè)設(shè)備是否被使用,哪個(gè)進(jìn)程在使用該設(shè)備,哪些進(jìn)程在等待使用該設(shè)備。三 算法及數(shù)據(jù)結(jié)構(gòu)3.1算法的總體思想(流程)設(shè)備管理的功能是按照設(shè)備的類型和系統(tǒng)采用的分配策略,為請(qǐng)求I/O進(jìn)程分配一條傳輸信息的完整通路。合理的控制I/O的控制過程,可最大限度的實(shí)現(xiàn)CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作。1.監(jiān)視所有設(shè)備。為了能對(duì)設(shè)備實(shí)施有效的分配和控制,系統(tǒng)能獲取設(shè)備的狀態(tài)。設(shè)備狀態(tài)

4、保存在設(shè)備控制表(DeviceTable)中,并動(dòng)態(tài)的記錄狀態(tài)的變化及有關(guān)信息。2.制定分配策略。按先來先服務(wù)的算法,進(jìn)行設(shè)備分配。3.設(shè)備的分配。把設(shè)備分配給進(jìn)程。4.設(shè)備回收。當(dāng)進(jìn)程運(yùn)行完畢后,要釋放設(shè)備,則系統(tǒng)必須回收,一邊其他進(jìn)程使用。圖3.13.2 Equipment模塊3.2.1 功能記錄設(shè)備的狀態(tài)及相關(guān)信息檢查設(shè)備是否被調(diào)用對(duì)設(shè)備進(jìn)行分配進(jìn)程結(jié)束對(duì)設(shè)備進(jìn)行回收3.2.2 數(shù)據(jù)結(jié)構(gòu)一個(gè)DeviceTable類、一個(gè)DeviceTable函數(shù)。DeviceTable是設(shè)備分配表,說明設(shè)備的分配狀況,是否被占用。Device類說明了設(shè)備是如何使用的。每個(gè)設(shè)備是否被使用,哪個(gè)進(jìn)程在使用該

5、設(shè)備,哪些進(jìn)程在等待使用該設(shè)備。 3.3 cpu模塊3.3.1 功能進(jìn)程對(duì)設(shè)備的調(diào)用,當(dāng)進(jìn)程使用設(shè)備時(shí),檢查設(shè)備是否空閑。如果空閑,則調(diào)用該設(shè)備;如果設(shè)備正被使用,則將該進(jìn)程阻塞到該設(shè)備的阻塞隊(duì)列中,等到設(shè)備空閑時(shí),再被喚醒,調(diào)用設(shè)備。3.3.2 數(shù)據(jù)結(jié)構(gòu)一個(gè)設(shè)備的枚舉類型DeviceType,一個(gè)cpu函數(shù)。Cpu函數(shù)中調(diào)用Equipment模塊中的函數(shù)對(duì)設(shè)備進(jìn)行檢測。如果設(shè)備空閑,就調(diào)用該設(shè)備;如果設(shè)備真在被使用,則該進(jìn)程被阻塞到該設(shè)備的阻塞隊(duì)列中。3.3.3 算法通過調(diào)用Equipment模塊中的函數(shù)對(duì)設(shè)背進(jìn)行檢測:如果設(shè)備空閑,則使用該設(shè)備;如果設(shè)備正在工作,則進(jìn)程被阻塞。3.4 fo

6、rm1模塊3.4.1 功能界面管理圖3-2啟動(dòng)進(jìn)程,如果要使用設(shè)備,按先來先服務(wù)的算法調(diào)用設(shè)備。此模塊中有一個(gè)設(shè)備調(diào)用函數(shù)public int Allocate(DeviceType type),根據(jù)設(shè)備的物理名調(diào)用設(shè)備,并將信息顯示顯示到界面中。3.4.2 算法先來先服務(wù)(FCFS, First Come First Service)分配算法:每一設(shè)備有一隊(duì)列管理,當(dāng)多個(gè)作業(yè)或任務(wù)對(duì)同一設(shè)備提出I/O請(qǐng)求時(shí),該算法把請(qǐng)求的先后次序排成一個(gè)等待該設(shè)備的隊(duì)列,設(shè)備分配程序把設(shè)備分配給隊(duì)列中的第一各作業(yè)。四 程序設(shè)計(jì)與實(shí)現(xiàn)4.1 程序流程圖YNNNY執(zhí)行的進(jìn)程根據(jù)設(shè)備的物理名調(diào)用設(shè)備設(shè)備a是否空閑

7、設(shè)備b是否空閑設(shè)備c是否空閑進(jìn)程結(jié)束,回收設(shè)備Y將該進(jìn)程放到設(shè)備a的阻塞隊(duì)列中將該進(jìn)程放到設(shè)備b的阻塞隊(duì)列中將該進(jìn)程放到設(shè)備c的阻塞隊(duì)列中圖4-14.2 基本思想進(jìn)程調(diào)用設(shè)備。先調(diào)用A類設(shè)備, A類設(shè)備一共有三個(gè),如果有空閑的設(shè)備,則進(jìn)程就可調(diào)用;否則將進(jìn)程阻塞到設(shè)備A的阻塞隊(duì)列中,等待設(shè)備,等到A類設(shè)備有空閑設(shè)備時(shí),就喚醒該進(jìn)程,在斷點(diǎn)處繼續(xù)進(jìn)行程序。再調(diào)用B類設(shè)備, B類設(shè)備一共有兩個(gè),如果有空閑的設(shè)備,則進(jìn)程就可調(diào)用;否則將進(jìn)程阻塞到設(shè)備B的阻塞隊(duì)列中,等待設(shè)備,等到B類設(shè)備有空閑設(shè)備時(shí),就喚醒該進(jìn)程,在斷點(diǎn)處繼續(xù)進(jìn)行程序。最后調(diào)用C類設(shè)備, C類設(shè)備只有一個(gè),C設(shè)備是臨界資源,如果C設(shè)

8、備空閑,則進(jìn)程就可調(diào)用;否則將進(jìn)程阻塞到設(shè)備C的阻塞隊(duì)列中,等待設(shè)備,等到C設(shè)備空閑,就喚醒該進(jìn)程,在斷點(diǎn)處繼續(xù)進(jìn)行程序。4.3 定義的公共變量或數(shù)據(jù)結(jié)構(gòu)Anum,Bnum,Cnum分別表示設(shè)備A,B,C空閑數(shù)目public enum DeviceType 枚舉型的數(shù)據(jù)類型 列舉出三種設(shè)備public struct DeviceTable 定義一個(gè)設(shè)備表的結(jié)構(gòu)體 public class Device 設(shè)備類public bool JudgeDevice(DeviceType type) 檢查類型為type的設(shè)備是否可用public int Allocate(DeviceType type)

9、分配設(shè)備,返回第幾個(gè)設(shè)備被占用public void DeAllocate(DeviceType type, int a) 回收設(shè)備4.4 實(shí)驗(yàn)部分代碼namespace WindowsApplication2 public partial class Form1 : Form public static int Anum = 3, Bnum = 2, Cnum = 1; public enum DeviceType A,B, C, public struct DeviceTable public DeviceType deviceType; public int total; public

10、int useState; /0空閑,1占用 public DeviceTable(DeviceType type, int total) /定義一個(gè)構(gòu)造函數(shù) this.total = total; deviceType = type; useState = new inttotal; for (int i = 0; i < total; i+) /初始化每個(gè)設(shè)備 useStatei = 0; public class Device private DeviceTable table = new DeviceTable3; /三種設(shè)備 private static Device devi

11、ce = new Device(); public Device() InitDevice();/初始化設(shè)備 private void InitDevice() /設(shè)備初始化,A設(shè)備3個(gè),B設(shè)備2個(gè),C設(shè)備1個(gè) table0 = new DeviceTable(DeviceType.A, 3); table1 = new DeviceTable(DeviceType.B, 2); table2 = new DeviceTable(DeviceType.C, 1); / /檢查類型為type的設(shè)備是否可用/ / public bool JudgeDevice(DeviceType type) b

12、ool str = false; switch (type) case DeviceType.A: if (table0.total > 0) str = true; break; case DeviceType.B: if (table1.total > 0) str = true; break; case DeviceType.C: if (table2.total > 0) str = true; break; return str; / /分配設(shè)備,返回第幾個(gè)設(shè)備被占用/ / public int Allocate(DeviceType type) int k = 0

13、; switch (type) /使用switch語句選擇分配設(shè)備不同函數(shù) case DeviceType.A: table0.total-; for (int i = 0; i < 3; i+) if (table0.useStatei = 0) table0.useStatei = 1; k = i; break; break; case DeviceType.B: table1.total-; for (int i = 0; i < 2; i+) if (table0.useStatei = 0) table0.useStatei = 1; k = i; break; bre

14、ak; case DeviceType.C: table2.total-; break; return k; / /回收設(shè)備/ / public void DeAllocate(DeviceType type, int a) switch (type) case DeviceType.A: table0.total+; table0.useStatea = 0; break; case DeviceType.B: table1.total+; table1.useStatea = 0; break; case DeviceType.C: table2.total+; table2.useSta

15、tea = 0; break; public Form1() InitializeComponent(); / / 分配設(shè)備時(shí)的顏色變化/ / private void button7_Click(object sender, EventArgs e) Anum-; string result1 = "" Device d1 = new Device(); int m1 = d1.Allocate(DeviceType.A); result1 = Convert.ToString(m1); switch (Anum) case 2: this.button1.BackCol

16、or = Color.Red; break; case 1: this.button2.BackColor = Color.Red; break; case 0: this.button3.BackColor = Color.Red; break; default: MessageBox.Show("無設(shè)備可分配"); break; private void button8_Click(object sender, EventArgs e) Bnum-; string result2 = "" Device d2 = new Device(); int

17、m2 = d2.Allocate(DeviceType.B); switch (Bnum) case 1: this.button4.BackColor = Color.Red; break; case 0: this.button5.BackColor = Color.Red; break; default: MessageBox.Show("無設(shè)備可分配"); break; result2 = Convert.ToString(m2); private void button9_Click(object sender, EventArgs e) Cnum-; strin

18、g result3 = "" Device d1 = new Device(); int m3 = d1.Allocate(DeviceType.C); if (Cnum = 0) this.button6.BackColor = Color.Red; else MessageBox.Show("無設(shè)備可分配"); result3 = Convert.ToString(m3); 4.5 運(yùn)行截圖屏幕顯示主存使用情況示意圖,哪些主存塊已分配,哪些主存塊未分配,以不同的顏色表示,灰色表示設(shè)備空閑,紅色表示設(shè)備已分配初始化為所有設(shè)備都是空閑狀態(tài),如下圖所示圖4-2分配設(shè)備A正常情況下,如圖所示:圖4-3分配設(shè)備A非正常情況下,例如需要設(shè)備數(shù)超過實(shí)際有的設(shè)備數(shù)時(shí),如圖所示:圖4-43個(gè)設(shè)備A都被分配出去,回收設(shè)備A時(shí)正常情況如下圖所示:圖4-5 4.6 使用說明設(shè)備管理主要包括設(shè)備的分配和回收。1. 設(shè)備的模擬 模擬系統(tǒng)中有A、B、C三種獨(dú)占型設(shè)備,A設(shè)備3個(gè),B設(shè)備2個(gè),C設(shè)備1

溫馨提示

  • 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)論