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

下載本文檔

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

文檔簡介

1、操作系統(tǒng)課程設(shè)計(jì)(設(shè)備管理)河北大學(xué)工商學(xué)院操作系統(tǒng)課程設(shè)計(jì)操作系統(tǒng)課程設(shè)計(jì)(設(shè)備管理)目錄一引言11.1 課程設(shè)計(jì)題目11.2 課程設(shè)計(jì)的目的11.3 小組人數(shù)11.4 編程語言11.5 課程設(shè)計(jì)內(nèi)容11.6 界面設(shè)計(jì)如圖1二課程設(shè)計(jì)任務(wù)及要求22.1 設(shè)計(jì)任務(wù)22.2 設(shè)計(jì)要求2三算法及數(shù)據(jù)結(jié)構(gòu)23.1 算法的總體思想(流程)23.2 Equipment模塊33.2.1 功能33.2.2 數(shù)據(jù)結(jié)構(gòu)33.3 cpu模塊43.3.1 功能43.3.2 數(shù)據(jù)結(jié)構(gòu)43.3.3 算法423.4 forml模塊43.4.1 功能43.4.2 算法5四程序設(shè)計(jì)與實(shí)現(xiàn)54.1 程序流程圖54.2 基本思想

2、64.3 定義的公共變量或數(shù)據(jù)結(jié)構(gòu)74.4 實(shí)驗(yàn)部分代碼74.5 運(yùn)行截圖124.6 使用說明15五總結(jié)15六參考文獻(xiàn)15河北大學(xué)工商學(xué)院操作系統(tǒng)課程設(shè)計(jì)引言1.1 課程設(shè)計(jì)題目實(shí)現(xiàn)一個模擬操作系統(tǒng)。1.2 課程設(shè)計(jì)的目的通過模擬操作系統(tǒng)原理的實(shí)現(xiàn),加深對操作系統(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ì)方法的單用戶操作系

3、統(tǒng),該操作系統(tǒng)包括進(jìn)程管理、存儲管理、設(shè)備管理、文件管理和用戶接口四部分。1.6 界面設(shè)計(jì)如圖時(shí)間片*正在區(qū)行遴程,用戶命令接口*王后用戶區(qū)使用情況祓備使用情況:是否分鴕:占用退 程,等待進(jìn)程號目錄后唐遍使用唱了圖1.1fiff,示都 進(jìn)拉完S春二課程設(shè)計(jì)任務(wù)及要求2.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個設(shè)備管理分配程序,按先來先服務(wù)的算法,對設(shè)備進(jìn)行分配。2.2 設(shè)計(jì)要求設(shè)備管理主要包括設(shè)備的分配和回收。(1)模擬系統(tǒng)中有A、B、C三種獨(dú)占型設(shè)備,A設(shè)備3個,B設(shè)備2個,C設(shè)備1個。(2)因?yàn)槟M系統(tǒng)比較小,因此只要設(shè)備表設(shè)計(jì)合理即可。(3)采用先來先服務(wù)分配策略,采用設(shè)備的安全分配方式。(4)屏幕顯示每個

4、設(shè)備是否被使用,哪個進(jìn)程在使用該設(shè)備,哪些進(jìn)程在等待使用該設(shè)備。三算法及數(shù)據(jù)結(jié)構(gòu)3.1 算法的總體思想(流程)設(shè)備管理的功能是按照設(shè)備的類型和系統(tǒng)采用的分配策略,為請求I/O進(jìn)程分配一條傳輸信息的完整通路。合理的控制I/O的控制過程,可最大限度的實(shí)現(xiàn)CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作。1 .監(jiān)視所有設(shè)備。為了能對設(shè)備實(shí)施有效的分配和控制,系統(tǒng)能獲取設(shè)備的狀態(tài)。設(shè)備狀態(tài)保存在設(shè)備控制表(DeviceTable)中,并動態(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)必須

5、回收,一邊其他進(jìn)程使用。6圖3.13.2 Equipment模塊3.2.1 功能記錄設(shè)備的狀態(tài)及相關(guān)信息檢查設(shè)備是否被調(diào)用對設(shè)備進(jìn)行分配進(jìn)程結(jié)束對設(shè)備進(jìn)行回收3.2.2 數(shù)據(jù)結(jié)構(gòu)一個DeviceTable類、一個DeviceTable函數(shù)。DeviceTable是設(shè)備分配表,說明設(shè)備的分配狀況,是否被占用。Device類說明了設(shè)備是如何使用的。每個設(shè)備是否被使用,哪個進(jìn)程在使用該設(shè)備,哪些進(jìn)程在等待使用該設(shè)備。3.3 cpu模塊3.3.1 功能進(jìn)程對設(shè)備的調(diào)用,當(dāng)進(jìn)程使用設(shè)備時(shí),檢查設(shè)備是否空閑。如果空閑,則調(diào)用該設(shè)備;如果設(shè)備正被使用,則將該進(jìn)程阻塞到該設(shè)備的阻塞隊(duì)列中,等到設(shè)備空閑時(shí),再被

6、喚醒,調(diào)用設(shè)備。3.3.2 數(shù)據(jù)結(jié)構(gòu)一個設(shè)備的枚舉類型DeviceType,一個cpu函數(shù)。Cpu函數(shù)中調(diào)用Equipment模塊中的函數(shù)對設(shè)備進(jìn)行檢測。如果設(shè)備空閑,就調(diào)用該設(shè)備;如果設(shè)備真在被使用,則該進(jìn)程被阻塞到該設(shè)備的阻塞隊(duì)列中。3.3.3 算法通過調(diào)用Equipment模塊中的函數(shù)對設(shè)背進(jìn)行檢測:如果設(shè)備空閑,則使用該設(shè)備;如果設(shè)備正在工作,則進(jìn)程被阻塞。3.4 form1模塊3.4.1 功能界面管理圖3-2啟動進(jìn)程,如果要使用設(shè)備,按先來先服務(wù)的算法調(diào)用設(shè)備。此模塊中有一個設(shè)備調(diào)用函數(shù)publicintAllocate(DeviceTypetype),根據(jù)設(shè)備的物理名調(diào)用設(shè)備,并將

7、信息顯示顯示到界面中。3.4.2 算法先來先服務(wù)(FCFS,FirstComeFirstService)分配算法:每一設(shè)備有一隊(duì)列管理,當(dāng)多個作業(yè)或任務(wù)對同一設(shè)備提出I/O請求時(shí),該算法把請求的先后次序排成一個等待該設(shè)備的隊(duì)列,設(shè)備分配程序把設(shè)備分配給隊(duì)列中的第一各作業(yè)。河北大學(xué)工商學(xué)院操作系統(tǒng)課程設(shè)計(jì)7四程序設(shè)計(jì)與實(shí)現(xiàn)4.1程序流程圖河北大學(xué)工商學(xué)院操作系統(tǒng)課程設(shè)計(jì)4.2 基本思想進(jìn)程調(diào)用設(shè)備。先調(diào)用A類設(shè)備,A類設(shè)備一共有三個,如果有空閑的設(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è)

8、備一共有兩個,如果有空閑的設(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è)備只有一個,C設(shè)備是臨界資源,如果C設(shè)備空閑,則進(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ù)目publicenumDeviceType枚舉型的數(shù)據(jù)類型列舉出三種設(shè)備publicstructDeviceTable定義一個設(shè)備表的結(jié)構(gòu)體publicclassDevic

9、e設(shè)備類publicboolJudgeDevice(DeviceTypetype)檢查類型為type的設(shè)備是否可用publicintAllocate(DeviceTypetype)分配設(shè)備,返回第幾個設(shè)備被占用publicvoidDeAllocate(DeviceTypetype,inta)回收設(shè)備4.4 實(shí)驗(yàn)部分代碼namespaceWindowsApplication2publicpartialclassForm1:FormpublicstaticintAnum=3,Bnum=2,Cnum=1;publicenumDeviceTypeA,B,C,publicstructDeviceTabl

10、epublicDeviceTypedeviceType;publicinttotal;publicintuseState;/0空閑,1占用publicDeviceTable(DeviceTypetype,inttotal)/定義一個構(gòu)造函數(shù)this.total=total;deviceType=type;useState=newinttotal;for(inti=0;i<total;i+)/初始化每個設(shè)備useStatei=0;publicclassDeviceprivateDeviceTabletable=newDeviceTable3;/三種設(shè)備privatestaticDevice

11、device=newDevice();publicDevice()InitDevice();/初始化設(shè)備privatevoidInitDevice()/設(shè)備初始化,AiS備3個,B設(shè)備2個,C設(shè)備1個table0=newDeviceTable(DeviceType.A,3);table1 =newDeviceTable(DeviceType.B,2);table2 =newDeviceTable(DeviceType.C,1);/檢查類型為type的設(shè)備是否可用/publicboolJudgeDevice(DeviceTypetype)boolstr=false;switch(type)cas

12、eDeviceType.A:if(table0.total>0)str=true;break;caseDeviceType.B:if(table1.total>0)str=true;break;caseDeviceType.C:if(table2.total>0)str=true;break;returnstr;/分配設(shè)備,返回第幾個設(shè)備被占用/publicintAllocate(DeviceTypetype)intk=0;switch(type)/使用switch語句選擇分配設(shè)備不同函數(shù)caseDeviceType.A:table0.total-;for(inti=0;i&

13、lt;3;i+)if(table0.useStatei=0)table0.useStatei=1;k=i;break;break;caseDeviceType.B:table1.total-;for(inti=0;i<2;i+)if(table0.useStatei=0)table0.useStatei=1;k=i;break;break;caseDeviceType.C:table2.total-;break;returnk;/回收設(shè)備/publicvoidDeAllocate(DeviceTypetype,inta)switch(type)caseDeviceType.A:table

14、0.total+;table0.useStatea=0;break;caseDeviceType.B:table1.total+;table1 useStatea=0;break;caseDeviceType.C:table2.total+;table2 useStatea=0;break;publicForm1()InitializeComponent();/分配設(shè)備時(shí)的顏色變化/privatevoidbutton7_Click(objectsender,EventArgse)Anum-;stringresult1=""Deviced1=newDevice();intm1

15、=d1.Allocate(DeviceType.A);result1=Convert.ToString(m1);switch(Anum)case2:this.button1.BackColor=Color.Red;break;case1:this.button2.BackColor=Color.Red;break;case0:this.button3.BackColor=Color.Red;break;default:MessageBox.Show("無設(shè)備可分配");break;privatevoidbutton8_Click(objectsender,EventArgs

16、e)Bnum-;stringresult2=""Deviced2=newDevice();intm2=d2.Allocate(DeviceType.B);switch(Bnum)case1:this.button4.BackColor=Color.Red;break;case0:this.button5.BackColor=Color.Red;break;default:MessageBox.Show("無設(shè)備可分配");break;result2=Convert.ToString(m2);privatevoidbutton9_Click(objects

17、ender,EventArgse)Cnum-;stringresult3=""Deviced1=newDevice();intm3=d1.Allocate(DeviceType.C);if(Cnum=0)this.button6.BackColor=Color.Red;elseMessageBox.Show("無設(shè)備可分配");result3=Convert.ToString(m3);4.5運(yùn)行截圖屏幕顯示主存使用情況示意圖,哪些主存塊已分配,哪些主存塊未分配,以不同的顏色表示,灰色表示設(shè)備空閑,紅色表示設(shè)備已分配初始化為所有設(shè)備都是空閑狀態(tài),如下圖所示

18、圖4-2分配設(shè)備A正常情況下,如圖所示:16圖4-3分配設(shè)備A非正常情況下,例如需要設(shè)備數(shù)超過實(shí)際有的設(shè)備數(shù)時(shí),如圖所示:圖4-43個設(shè)備A都被分配出去,回收設(shè)備A時(shí)正常情況如下圖所示:圖4-54.6使用說明設(shè)備管理主要包括設(shè)備的分配和回收。1. 設(shè)備的模擬模擬系統(tǒng)中有A、B、C三種獨(dú)占型設(shè)備,A設(shè)備3個,B設(shè)備2個,C設(shè)備1個。2. 數(shù)據(jù)結(jié)構(gòu)因?yàn)槟M系統(tǒng)比較小,因此只要設(shè)備表設(shè)計(jì)合理既可。3. 設(shè)備分配采用先來先服務(wù)策略。4. 設(shè)備回收回收設(shè)備后,要注意喚醒等待設(shè)備的進(jìn)程。5. 屏幕顯示屏幕顯示要求包括:每個設(shè)備是否被使用,哪個進(jìn)程在使用該設(shè)備,哪些進(jìn)程在等待使用該設(shè)備。其中灰色表示設(shè)備空閑,紅色表示設(shè)備已被分配。五總結(jié)設(shè)備管理主要監(jiān)視所有設(shè)備的狀態(tài),制定分配策略,完成設(shè)備的分配和回收,合理的控制I/O的控制過程,最大限度的實(shí)現(xiàn)CPUt設(shè)備、設(shè)備與設(shè)備之間的把并行工作。通過對這次操作系統(tǒng)課程設(shè)計(jì)的親自參與和操作,使我深刻體會到了:只要你想做只要你想學(xué)沒有弄不懂得事情,工程里面也不能不在乎細(xì)節(jié),等等。感覺很受益匪淺。懂得了操作系統(tǒng)包括的四部分內(nèi)容:文

溫馨提示

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

最新文檔

評論

0/150

提交評論