版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)課程設(shè)計報告一 總體設(shè)計系統(tǒng)名稱:多級反饋隊列的模擬系統(tǒng)開發(fā):1).開發(fā)工具:微軟visual basic6.02).開發(fā)人員:項目負責人: 成員: 3) 開發(fā)計劃及時間安排: 開發(fā)步驟 計劃完成的任務(wù)計劃完成時間實際完成情況1確定開發(fā)的項目名稱,并熟悉相關(guān)知識,確定開發(fā)工具。(由小組內(nèi)的所有成員研討決定)1-2天模擬多級反饋隊列的實現(xiàn),用visual basic6.0實現(xiàn)可視化動態(tài)的模擬2詳細分配任務(wù),并明確每個人的任務(wù),開始實現(xiàn)。這一階段主要實現(xiàn)怎么控制進程的自動移出和判斷2-4天分配了任務(wù)在實現(xiàn)自動控制方面有了一定的進展3怎么實現(xiàn)進程時間的判斷及與其相應(yīng)的處理。以及對應(yīng)處理時cp
2、u的位置1天用多個不同的時鐘交叉控制來實現(xiàn),基本完成4實現(xiàn)控制臺程序模塊的設(shè)計,包括隨即生成進程序列,用戶自己設(shè)定的序列及各個隊列的時間1天成功完成了程序控制臺的功能和界面設(shè)計,模塊測試通過5測試各個模塊的功能,并對其進行整體測試1天發(fā)現(xiàn)了一些小問題,找出原因后一一解決了二 系統(tǒng)分析報告:很多進程調(diào)度方法都有一定的局限性,如短進程優(yōu)先的調(diào)度法,僅照顧了短進程而忽略了長進程,而且如果并未指明進程的長度,則段進程優(yōu)先和基于進程長度的搶占調(diào)度算法,都將無法使用,而多級反饋隊列調(diào)度算法,則不必事先知道各種進程所需的時間,而且還可以滿足各種類型進程的需要,因而它是目前被公認為的一種較好的進程調(diào)度算法。在
3、采用多級反饋隊列調(diào)度算法的系統(tǒng)中,調(diào)度算法的實施過程如下:(1) 應(yīng)設(shè)置多個就緒隊列,并為各個隊列賦予不同的優(yōu)先級,第一個隊列的優(yōu)先級是最高,第二個隊列次之,其余各隊列的優(yōu)先權(quán)逐個降低,該算法賦予各個隊列中進程執(zhí)行時間片,例如,第二個隊列的時間片要不第一個隊列的時間片長一倍,第i+1個隊列的時間片要比第i個隊列的時間片長一倍。(2) 當一個新進程進入內(nèi)存后,首先將它放入第一隊列的結(jié)尾,按fcfs原則排隊等待調(diào)度,當論到該進程執(zhí)行時, 如它能在該時間片后內(nèi)完成,便可準備撤離系統(tǒng),如果它在一個時間片結(jié)束尚未完成,調(diào)度程序便將該進程轉(zhuǎn)入第二個隊列的結(jié)尾,再同樣地按fcfs原則等待調(diào)度執(zhí)行;如果它在第
4、二隊列中運行一個時間片后仍未完成,再依次將它放入第三個隊列,如此下去,當?shù)谝婚L作業(yè)(進程)從第一隊列依次降到第n隊列后,在第n隊列中便采用取按時間片輪轉(zhuǎn)的方式運行。(3) 僅當?shù)谝粋€隊列空閑時,調(diào)度程序才調(diào)度第二個隊列中的進程運行,僅當?shù)?(i-1)隊列均空閑時,才會調(diào)度第i個隊列中為某進程服務(wù)時,又有新進程進入優(yōu)先權(quán)比較高的隊列(第1(i-1)中的任何一個隊列),則此時新進程將 搶占在運行進程的處理機,即由調(diào)度程序把在運行的進程放回到第i隊列的結(jié)尾,把處理機分配給新到的高有限權(quán)進程。 就緒隊列1就緒隊列2就緒隊列3就緒隊列n 至cpu 至cpu 至cpu 至cpu (時間片: )用vb模擬的
5、時候,可以用list來顯示進程。三 . 系統(tǒng)設(shè)計報告: 1)設(shè)計原理:本系統(tǒng)主要可視的模擬了多級反饋隊列的工作過程,多級反饋隊列的工作過程如下: 2)模擬的界面如下: 3)設(shè)計的模擬實現(xiàn): 用list來模擬進程隊列和需要的時間(剩余時間),用時鐘來控制自動運行4)設(shè)計時主要解決的問題: (1)在多級反饋隊列中,最主要的是隊列的優(yōu)先級,第一隊列的優(yōu)先級最高,運行時間最短,第二級隊列次之,運行時間次短,最后的一級隊列運行時間最長,優(yōu)先級最低。這就要求當進程在第一隊列運行沒有完成時,自動進入第二級,如果完成,則進入完成隊列。我們用時鐘來實現(xiàn),給每一個隊列中設(shè)置一個時鐘,用來設(shè)置各個隊列的時間,在外部
6、有相應(yīng)的時鐘來控制來判斷是否轉(zhuǎn)入下一級隊列還是進入完成隊列。 (2)在最后一級隊列中,如果沒有處理完,則繼續(xù)進入最后一級隊列的結(jié)尾,等待下一次處理,直到完成。這樣,控制最后一個的時鐘和以前的設(shè)計是不一樣的 (3)當?shù)趇級隊列為空時,處理機才能去處理i+1級隊列,也就意味著可能出現(xiàn)搶占cpu的情況,比如:當處理機處理第三級隊列中的進程的時候,意味著第一第二隊列已經(jīng)為空,但當此時生成一批新進程時(新進程生成時只能進入第一級隊列),這時,處理機搶占進行處理第一級隊列。實現(xiàn)的時候,管理后面隊列的時鐘總要判對他前面的所有的隊列中是否還有進程。關(guān)于cpu的位置,我們用一個時鐘控制cpu的位置,它的時鐘頻率
7、很高,比控制進程處理的各個時鐘的都快,這樣,他以很高的頻率掃描判斷cpu應(yīng)該在的位置。 (4)程序控制臺主要用來設(shè)置一些基本條件,比如各個隊列的時間等。5)設(shè)計界面和具體代碼: 其中:timer1 timer2 timer3 用來記錄第一第二第三隊列的時間,timer4用來控制cpu的位置 timer5,timer7,timer6來控制各個對列的添加和進入完成隊列 設(shè)計界面如下:源代碼如下: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)生成進程的條件,包括兩種方式:隨機和設(shè)定,隨機生成的時候,生成要設(shè)置的所有的條件,設(shè)定時,要按照后面給出的條件來設(shè)定。cpu處理模塊:由一個時鐘來控
18、制cpu的位置,它的頻率很高,基本上可以達到與新進程同步具體實現(xiàn)模塊:實現(xiàn)多級反饋隊列的模擬。當一個新進程進入內(nèi)存后,首先將它放入第一隊列的結(jié)尾,按fcfs原則排隊等待調(diào)度,當論到該進程執(zhí)行時, 如它能在該時間片后內(nèi)完成,便可準備撤離系統(tǒng),如果它在一個時間片結(jié)束尚未完成,調(diào)度程序便將該進程轉(zhuǎn)入第二個隊列的結(jié)尾,再同樣地按fcfs原則等待調(diào)度執(zhí)行;如果它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三個隊列,如此下去,當?shù)谝婚L作業(yè)(進程)從第一隊列依次降到第n隊列后,在第n隊列中便采用取按時間片輪轉(zhuǎn)的方式運行。僅當?shù)谝粋€隊列空閑時,調(diào)度程序才調(diào)度第二個隊列中的進程運行,僅當?shù)?(i-1)
19、隊列均空閑時,才會調(diào)度第i個隊列中為某進程服務(wù)時,又有新進程進入優(yōu)先權(quán)比較高的隊列(第1(i-1)中的任何一個隊列),則此時新進程將 搶占在運行進程的處理機,即由調(diào)度程序把在運行的進程放回到第i隊列的結(jié)尾,把處理機分配給新到的高有限權(quán)進程。 五 . 系統(tǒng)分調(diào)和總調(diào)報告 1) 分調(diào)報告:主要是指具體實現(xiàn)模塊和控制模塊。 具體實現(xiàn)模塊:(1) 當timer4的頻率太快時,生成的進程剛進入第一隊列就會處理完畢,這時體現(xiàn)不出真正的模擬,這是可以將其頻率設(shè)的慢一點,這時,他不斷的進行判斷測試,當發(fā)現(xiàn)第一個為空時,才激活控制第二個隊列的timer5來工作。(2) 在最后的隊列中和以前的不一樣,開始時的時候
20、把它設(shè)置的和前面一樣,出現(xiàn)了還沒有運行完成就加入完成隊列。顯然是個錯誤。將其糾正后,正常運行(3) 比如在處理第三隊列的進程時,新進入隊列,則轉(zhuǎn)向處理第一隊列,這時,其他的隊列的時鐘則為不可用。后面的時鐘必須判斷前面的隊列是否為空。(4) 當進程運行完畢后,彈出進程完畢的對話框,它也是由時鐘控制的,即只要全部隊列為空,就一直循環(huán)的探出對話框。這一點我沒有時間解決控制模塊:單獨與此模塊,主要是測試幾個設(shè)計的視線是否正常(1) 當單選在隨機生成的時候,所有的文本框均不可用,剛開始的時候,我把它們的可用設(shè)為真,有時可用,有時相反。這時應(yīng)該把它們置位假,而單選默認在隨機生成,(2) 當選擇設(shè)置時,其范圍不能超出后面所給的,否則會出現(xiàn)混亂2)總調(diào)報告:總調(diào)時主要解決兩個問題;一是如何把設(shè)置和隨機產(chǎn)生的條件賦予隊列,另一個是怎么使cpu處于正常的位置;(1) 第一個其實很簡單,只要將所生成的東西賦值與pcb0 tim0即可,他們是用來記錄相應(yīng)的條件的。(2) 這個問題有點復(fù)雜,因為cpu和隊列是完全不相干的兩個方面,要實現(xiàn)機會是同步轉(zhuǎn)化基本不可能,我采取了這樣的策略:將各個時鐘的頻率置得很慢,這樣可以一方面更好的顯示處理的過程,另一方面,將cpu的時鐘置得很大,這樣timer4不停的掃描,只要前面有新加的進程,它會在最短時間內(nèi)轉(zhuǎn)過去,原來的進程停止(這是由具體實現(xiàn)模塊實現(xiàn)的)六. 系
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木材綜合利用技術(shù)研發(fā)合同樣本7篇
- 2025年加盟商店面維護協(xié)議
- 2025版巡游出租車特許經(jīng)營合同修訂版五3篇
- 2025版家居建材銷售合同終止與綠色環(huán)保認證協(xié)議
- 2025年度船舶港口日常保潔與維護服務(wù)合同3篇
- 五氧化二釩項目評價分析報告
- 二零二五年度能源合同解除協(xié)議
- 二零二五年度出租車租賃合同司機休息區(qū)域與設(shè)施協(xié)議
- 二零二五年度海域使用權(quán)租賃及海洋資源綜合利用技術(shù)服務(wù)合同
- 二零二五年度股東變更后的董事會組成與授權(quán)協(xié)議
- 中國聯(lián)合網(wǎng)絡(luò)通信有限公司招聘筆試題庫2024
- 【社會工作介入精神障礙社區(qū)康復(fù)問題探究的文獻綜述5800字】
- 節(jié)前停工停產(chǎn)與節(jié)后復(fù)工復(fù)產(chǎn)安全注意事項課件
- 設(shè)備管理績效考核細則
- 中國人民銀行清算總中心直屬企業(yè)2023年招聘筆試上岸歷年典型考題與考點剖析附帶答案詳解
- (正式版)SJT 11449-2024 集中空調(diào)電子計費信息系統(tǒng)工程技術(shù)規(guī)范
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負性情緒與心理護理
- 高考語文文學類閱讀分類訓(xùn)練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
評論
0/150
提交評論