版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、操作系統(tǒng)課程設計報告一 總體設計系統(tǒng)名稱:多級反饋隊列的模擬系統(tǒng)開發(fā):1).開發(fā)工具:微軟visual basic6.02).開發(fā)人員:項目負責人: 成員: 3) 開發(fā)計劃及時間安排: 開發(fā)步驟 計劃完成的任務計劃完成時間實際完成情況1確定開發(fā)的項目名稱,并熟悉相關知識,確定開發(fā)工具。(由小組內的所有成員研討決定)1-2天模擬多級反饋隊列的實現(xiàn),用visual basic6.0實現(xiàn)可視化動態(tài)的模擬2詳細分配任務,并明確每個人的任務,開始實現(xiàn)。這一階段主要實現(xiàn)怎么控制進程的自動移出和判斷2-4天分配了任務在實現(xiàn)自動控制方面有了一定的進展3怎么實現(xiàn)進程時間的判斷及與其相應的處理。以及對應處理時cp
2、u的位置1天用多個不同的時鐘交叉控制來實現(xiàn),基本完成4實現(xiàn)控制臺程序模塊的設計,包括隨即生成進程序列,用戶自己設定的序列及各個隊列的時間1天成功完成了程序控制臺的功能和界面設計,模塊測試通過5測試各個模塊的功能,并對其進行整體測試1天發(fā)現(xiàn)了一些小問題,找出原因后一一解決了二 系統(tǒng)分析報告:很多進程調度方法都有一定的局限性,如短進程優(yōu)先的調度法,僅照顧了短進程而忽略了長進程,而且如果并未指明進程的長度,則段進程優(yōu)先和基于進程長度的搶占調度算法,都將無法使用,而多級反饋隊列調度算法,則不必事先知道各種進程所需的時間,而且還可以滿足各種類型進程的需要,因而它是目前被公認為的一種較好的進程調度算法。在
3、采用多級反饋隊列調度算法的系統(tǒng)中,調度算法的實施過程如下:(1) 應設置多個就緒隊列,并為各個隊列賦予不同的優(yōu)先級,第一個隊列的優(yōu)先級是最高,第二個隊列次之,其余各隊列的優(yōu)先權逐個降低,該算法賦予各個隊列中進程執(zhí)行時間片,例如,第二個隊列的時間片要不第一個隊列的時間片長一倍,第i+1個隊列的時間片要比第i個隊列的時間片長一倍。(2) 當一個新進程進入內存后,首先將它放入第一隊列的結尾,按fcfs原則排隊等待調度,當論到該進程執(zhí)行時, 如它能在該時間片后內完成,便可準備撤離系統(tǒng),如果它在一個時間片結束尚未完成,調度程序便將該進程轉入第二個隊列的結尾,再同樣地按fcfs原則等待調度執(zhí)行;如果它在第
4、二隊列中運行一個時間片后仍未完成,再依次將它放入第三個隊列,如此下去,當?shù)谝婚L作業(yè)(進程)從第一隊列依次降到第n隊列后,在第n隊列中便采用取按時間片輪轉的方式運行。(3) 僅當?shù)谝粋€隊列空閑時,調度程序才調度第二個隊列中的進程運行,僅當?shù)?(i-1)隊列均空閑時,才會調度第i個隊列中為某進程服務時,又有新進程進入優(yōu)先權比較高的隊列(第1(i-1)中的任何一個隊列),則此時新進程將 搶占在運行進程的處理機,即由調度程序把在運行的進程放回到第i隊列的結尾,把處理機分配給新到的高有限權進程。 就緒隊列1就緒隊列2就緒隊列3就緒隊列n 至cpu 至cpu 至cpu 至cpu (時間片: )用vb模擬的
5、時候,可以用list來顯示進程。三 . 系統(tǒng)設計報告: 1)設計原理:本系統(tǒng)主要可視的模擬了多級反饋隊列的工作過程,多級反饋隊列的工作過程如下: 2)模擬的界面如下: 3)設計的模擬實現(xiàn): 用list來模擬進程隊列和需要的時間(剩余時間),用時鐘來控制自動運行4)設計時主要解決的問題: (1)在多級反饋隊列中,最主要的是隊列的優(yōu)先級,第一隊列的優(yōu)先級最高,運行時間最短,第二級隊列次之,運行時間次短,最后的一級隊列運行時間最長,優(yōu)先級最低。這就要求當進程在第一隊列運行沒有完成時,自動進入第二級,如果完成,則進入完成隊列。我們用時鐘來實現(xiàn),給每一個隊列中設置一個時鐘,用來設置各個隊列的時間,在外部
6、有相應的時鐘來控制來判斷是否轉入下一級隊列還是進入完成隊列。 (2)在最后一級隊列中,如果沒有處理完,則繼續(xù)進入最后一級隊列的結尾,等待下一次處理,直到完成。這樣,控制最后一個的時鐘和以前的設計是不一樣的 (3)當?shù)趇級隊列為空時,處理機才能去處理i+1級隊列,也就意味著可能出現(xiàn)搶占cpu的情況,比如:當處理機處理第三級隊列中的進程的時候,意味著第一第二隊列已經(jīng)為空,但當此時生成一批新進程時(新進程生成時只能進入第一級隊列),這時,處理機搶占進行處理第一級隊列。實現(xiàn)的時候,管理后面隊列的時鐘總要判對他前面的所有的隊列中是否還有進程。關于cpu的位置,我們用一個時鐘控制cpu的位置,它的時鐘頻率
7、很高,比控制進程處理的各個時鐘的都快,這樣,他以很高的頻率掃描判斷cpu應該在的位置。 (4)程序控制臺主要用來設置一些基本條件,比如各個隊列的時間等。5)設計界面和具體代碼: 其中:timer1 timer2 timer3 用來記錄第一第二第三隊列的時間,timer4用來控制cpu的位置 timer5,timer7,timer6來控制各個對列的添加和進入完成隊列 設計界面如下:源代碼如下:public pcb1 as stringpublic pcb0 as stringpublic time as stringpublic time0 as stringprivate sub comman
8、d1_click()randomizerandi = int(rnd * (9 - 5 + 1) + 5)for i = 0 to randi randomize rand = int(rnd * (10 - 1 + 1) + 1) select case rand case 1 pcb = 進程控制塊1 time = 100 case 2 pcb = 進程控制塊2 time = 200 case 3 pcb = 進程控制塊3 time = 300 case 4 pcb = 進程控制塊4 time = 400 case 5 pcb = 進程控制塊5 time = 500 case 6 pcb
9、= 進程控制塊6 time = 600 case 7 pcb = 進程控制塊7 time = 700 case 8 pcb = 進程控制塊8 time = 800 case 9 pcb = 進程控制塊9 time = 900 end select list1.additem pcb list5.additem time next i timer5.enabled = true timer4.enabled = trueend subprivate sub command2_click()endend subprivate sub command3_click()if text1.text =
10、thenmsgbox (請輸入生成的條件!)elserandi = text1.textfor i = 0 to randi randomize randi = int(rnd * (10 - 1 + 1) + 1) timer1.interval = text2.text timer2.interval = text3.text timer3.interval = text4.text select case randi case 1 pcb = 進程控制塊1 time = 100 case 2 pcb = 進程控制塊2 time = 200 case 3 pcb = 進程控制塊3 time
11、 = 300 case 4 pcb = 進程控制塊4 time = 400 case 5 pcb = 進程控制塊5 time = 500 case 6 pcb = 進程控制塊6 time = 600 case 7 pcb = 進程控制塊7 time = 700 case 8 pcb = 進程控制塊8 time = 800 case 9 pcb = 進程控制塊9 time = 900 end select list1.additem pcb list5.additem time next i timer5.enabled = true end ifend subprivate sub form_
12、load()if form1.option1.value = true thentext1.enabled = falsetext2.enabled = falsetext3.enabled = falsetext4.enabled = falseend ifend subprivate sub option1_click()if option1.value = true thentext1.enabled = falsetext2.enabled = falsetext3.enabled = falsetext4.enabled = falseend ifend subprivate sub
13、 option2_click()if option2.value = true thentext1.enabled = truetext2.enabled = truetext3.enabled = truetext4.enabled = trueend ifend sub private sub timer4_timer()if list1.list(0) then picture2.left = 360elseif list2.list(0) = then picture2.left = 5500 else picture2.left = 2800 end if end if end su
14、bprivate sub timer5_timer()if list1.list(0) then time0 = list5.list(0) pcb0 = list1.list(0) a = timer1.interval if time0 a then list1.removeitem 0 list5.removeitem 0 list2.additem pcb0 list7.additem time0 - a else list1.removeitem 0 list5.removeitem 0 list6.additem pcb0 end if else timer6.enabled =
15、true end if end subprivate sub timer6_timer()if form1.list1.list(0) = then if list2.list(0) then time0 = list7.list(0) pcb0 = list2.list(0) a = timer2.interval if time0 a then list2.removeitem 0 list7.removeitem 0 label12.caption = pcb0 list3.additem pcb0 list8.additem time0 - a else list2.removeite
16、m 0 list7.removeitem 0 list6.additem pcb0 end if else timer7.enabled = true end if end if end subprivate sub timer7_timer()if form1.list1.list(0) = then if list2.list(0) = then if list3.list(0) then time0 = list8.list(0) pcb0 = list3.list(0) a = timer3.interval if time0 a then list3.removeitem 0 lis
17、t8.removeitem 0 list3.additem pcb0 list8.additem time0 - a else list3.removeitem 0 list8.removeitem 0 list6.additem pcb0 end if else msgbox (進程完畢) end ifend ifend ifend sub四 。系統(tǒng)模塊說明 系統(tǒng)共有三個模塊:程序控制模塊,具體實現(xiàn)模塊和處理機模塊 功能如下: 程序控制模塊:實現(xiàn)生成進程的條件,包括兩種方式:隨機和設定,隨機生成的時候,生成要設置的所有的條件,設定時,要按照后面給出的條件來設定。cpu處理模塊:由一個時鐘來控
18、制cpu的位置,它的頻率很高,基本上可以達到與新進程同步具體實現(xiàn)模塊:實現(xiàn)多級反饋隊列的模擬。當一個新進程進入內存后,首先將它放入第一隊列的結尾,按fcfs原則排隊等待調度,當論到該進程執(zhí)行時, 如它能在該時間片后內完成,便可準備撤離系統(tǒng),如果它在一個時間片結束尚未完成,調度程序便將該進程轉入第二個隊列的結尾,再同樣地按fcfs原則等待調度執(zhí)行;如果它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三個隊列,如此下去,當?shù)谝婚L作業(yè)(進程)從第一隊列依次降到第n隊列后,在第n隊列中便采用取按時間片輪轉的方式運行。僅當?shù)谝粋€隊列空閑時,調度程序才調度第二個隊列中的進程運行,僅當?shù)?(i-1)
19、隊列均空閑時,才會調度第i個隊列中為某進程服務時,又有新進程進入優(yōu)先權比較高的隊列(第1(i-1)中的任何一個隊列),則此時新進程將 搶占在運行進程的處理機,即由調度程序把在運行的進程放回到第i隊列的結尾,把處理機分配給新到的高有限權進程。 五 . 系統(tǒng)分調和總調報告 1) 分調報告:主要是指具體實現(xiàn)模塊和控制模塊。 具體實現(xiàn)模塊:(1) 當timer4的頻率太快時,生成的進程剛進入第一隊列就會處理完畢,這時體現(xiàn)不出真正的模擬,這是可以將其頻率設的慢一點,這時,他不斷的進行判斷測試,當發(fā)現(xiàn)第一個為空時,才激活控制第二個隊列的timer5來工作。(2) 在最后的隊列中和以前的不一樣,開始時的時候
20、把它設置的和前面一樣,出現(xiàn)了還沒有運行完成就加入完成隊列。顯然是個錯誤。將其糾正后,正常運行(3) 比如在處理第三隊列的進程時,新進入隊列,則轉向處理第一隊列,這時,其他的隊列的時鐘則為不可用。后面的時鐘必須判斷前面的隊列是否為空。(4) 當進程運行完畢后,彈出進程完畢的對話框,它也是由時鐘控制的,即只要全部隊列為空,就一直循環(huán)的探出對話框。這一點我沒有時間解決控制模塊:單獨與此模塊,主要是測試幾個設計的視線是否正常(1) 當單選在隨機生成的時候,所有的文本框均不可用,剛開始的時候,我把它們的可用設為真,有時可用,有時相反。這時應該把它們置位假,而單選默認在隨機生成,(2) 當選擇設置時,其范圍不能超出后面所給的,否則會出現(xiàn)混亂2)總調報告:總調時主要解決兩個問題;一是如何把設置和隨機產(chǎn)生的條件賦予隊列,另一個是怎么使cpu處于正常的位置;(1) 第一個其實很簡單,只要將所生成的東西賦值與pcb0 tim0即可,他們是用來記錄相應的條件的。(2) 這個問題有點復雜,因為cpu和隊列是完全不相干的兩個方面,要實現(xiàn)機會是同步轉化基本不可能,我采取了這樣的策略:將各個時鐘的頻率置得很慢,這樣可以一方面更好的顯示處理的過程,另一方面,將cpu的時鐘置得很大,這樣timer4不停的掃描,只要前面有新加的進程,它會在最短時間內轉過去,原來的進程停止(這是由具體實現(xiàn)模塊實現(xiàn)的)六. 系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 日租房租賃合同范本
- 集成成像中的多光譜數(shù)據(jù)融合技術研究
- 二零二五版智能家居產(chǎn)品定制與安裝合同4篇
- 二零二五年度生鮮乳食品安全責任保險合同4篇
- 二零二五年度高端木門定制安裝合同4篇
- 2025版寧夏事業(yè)單位醫(yī)療技術人員聘用合同4篇
- 2025年海南金融控股股份有限公司招聘筆試參考題庫含答案解析
- 2025年浙江路建交通工程有限公司招聘筆試參考題庫含答案解析
- 2025年重慶渝水水務機械有限公司招聘筆試參考題庫含答案解析
- 2025年粵教新版七年級生物上冊月考試卷含答案
- (正式版)SJT 11449-2024 集中空調電子計費信息系統(tǒng)工程技術規(guī)范
- 廣州綠色金融發(fā)展現(xiàn)狀及對策的研究
- 《近現(xiàn)代史》義和團運動
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學技術在生物制藥中的應用
- 消化系統(tǒng)疾病的負性情緒與心理護理
- 高考語文文學類閱讀分類訓練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
- 灰壩施工組織設計
- WS-T 813-2023 手術部位標識標準
- 同意更改小孩名字協(xié)議書
評論
0/150
提交評論