1881.操作系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
1881.操作系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
1881.操作系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
1881.操作系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
1881.操作系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一 總體設(shè)計(jì)系統(tǒng)名稱:多級(jí)反饋隊(duì)列的模擬系統(tǒng)開發(fā):1).開發(fā)工具:微軟visual basic6.02).開發(fā)人員:項(xiàng)目負(fù)責(zé)人: 成員: 3) 開發(fā)計(jì)劃及時(shí)間安排: 開發(fā)步驟 計(jì)劃完成的任務(wù)計(jì)劃完成時(shí)間實(shí)際完成情況1確定開發(fā)的項(xiàng)目名稱,并熟悉相關(guān)知識(shí),確定開發(fā)工具。(由小組內(nèi)的所有成員研討決定)1-2天模擬多級(jí)反饋隊(duì)列的實(shí)現(xiàn),用visual basic6.0實(shí)現(xiàn)可視化動(dòng)態(tài)的模擬2詳細(xì)分配任務(wù),并明確每個(gè)人的任務(wù),開始實(shí)現(xiàn)。這一階段主要實(shí)現(xiàn)怎么控制進(jìn)程的自動(dòng)移出和判斷2-4天分配了任務(wù)在實(shí)現(xiàn)自動(dòng)控制方面有了一定的進(jìn)展3怎么實(shí)現(xiàn)進(jìn)程時(shí)間的判斷及與其相應(yīng)的處理。以及對(duì)應(yīng)處理時(shí)cpu的位置1天用多個(gè)不

2、同的時(shí)鐘交叉控制來(lái)實(shí)現(xiàn),基本完成4實(shí)現(xiàn)控制臺(tái)程序模塊的設(shè)計(jì),包括隨即生成進(jìn)程序列,用戶自己設(shè)定的序列及各個(gè)隊(duì)列的時(shí)間1天成功完成了程序控制臺(tái)的功能和界面設(shè)計(jì),模塊測(cè)試通過(guò)5測(cè)試各個(gè)模塊的功能,并對(duì)其進(jìn)行整體測(cè)試1天發(fā)現(xiàn)了一些小問(wèn)題,找出原因后一一解決了二 系統(tǒng)分析報(bào)告:很多進(jìn)程調(diào)度方法都有一定的局限性,如短進(jìn)程優(yōu)先的調(diào)度法,僅照顧了短進(jìn)程而忽略了長(zhǎng)進(jìn)程,而且如果并未指明進(jìn)程的長(zhǎng)度,則段進(jìn)程優(yōu)先和基于進(jìn)程長(zhǎng)度的搶占調(diào)度算法,都將無(wú)法使用,而多級(jí)反饋隊(duì)列調(diào)度算法,則不必事先知道各種進(jìn)程所需的時(shí)間,而且還可以滿足各種類型進(jìn)程的需要,因而它是目前被公認(rèn)為的一種較好的進(jìn)程調(diào)度算法。在采用多級(jí)反饋隊(duì)列調(diào)度

3、算法的系統(tǒng)中,調(diào)度算法的實(shí)施過(guò)程如下:(1) 應(yīng)設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu)先級(jí),第一個(gè)隊(duì)列的優(yōu)先級(jí)是最高,第二個(gè)隊(duì)列次之,其余各隊(duì)列的優(yōu)先權(quán)逐個(gè)降低,該算法賦予各個(gè)隊(duì)列中進(jìn)程執(zhí)行時(shí)間片,例如,第二個(gè)隊(duì)列的時(shí)間片要不第一個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍,第i+1個(gè)隊(duì)列的時(shí)間片要比第i個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍。(2) 當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊(duì)列的結(jié)尾,按fcfs原則排隊(duì)等待調(diào)度,當(dāng)論到該進(jìn)程執(zhí)行時(shí), 如它能在該時(shí)間片后內(nèi)完成,便可準(zhǔn)備撤離系統(tǒng),如果它在一個(gè)時(shí)間片結(jié)束尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二個(gè)隊(duì)列的結(jié)尾,再同樣地按fcfs原則等待調(diào)度執(zhí)行;如果它在第二隊(duì)列中運(yùn)行一個(gè)時(shí)間

4、片后仍未完成,再依次將它放入第三個(gè)隊(duì)列,如此下去,當(dāng)?shù)谝婚L(zhǎng)作業(yè)(進(jìn)程)從第一隊(duì)列依次降到第n隊(duì)列后,在第n隊(duì)列中便采用取按時(shí)間片輪轉(zhuǎn)的方式運(yùn)行。(3) 僅當(dāng)?shù)谝粋€(gè)隊(duì)列空閑時(shí),調(diào)度程序才調(diào)度第二個(gè)隊(duì)列中的進(jìn)程運(yùn)行,僅當(dāng)?shù)?(i-1)隊(duì)列均空閑時(shí),才會(huì)調(diào)度第i個(gè)隊(duì)列中為某進(jìn)程服務(wù)時(shí),又有新進(jìn)程進(jìn)入優(yōu)先權(quán)比較高的隊(duì)列(第1(i-1)中的任何一個(gè)隊(duì)列),則此時(shí)新進(jìn)程將 搶占在運(yùn)行進(jìn)程的處理機(jī),即由調(diào)度程序把在運(yùn)行的進(jìn)程放回到第i隊(duì)列的結(jié)尾,把處理機(jī)分配給新到的高有限權(quán)進(jìn)程。 就緒隊(duì)列1就緒隊(duì)列2就緒隊(duì)列3就緒隊(duì)列n 至cpu 至cpu 至cpu 至cpu (時(shí)間片: )用vb模擬的時(shí)候,可以用list

5、來(lái)顯示進(jìn)程。三 . 系統(tǒng)設(shè)計(jì)報(bào)告: 1)設(shè)計(jì)原理:本系統(tǒng)主要可視的模擬了多級(jí)反饋隊(duì)列的工作過(guò)程,多級(jí)反饋隊(duì)列的工作過(guò)程如下: 2)模擬的界面如下: 3)設(shè)計(jì)的模擬實(shí)現(xiàn): 用list來(lái)模擬進(jìn)程隊(duì)列和需要的時(shí)間(剩余時(shí)間),用時(shí)鐘來(lái)控制自動(dòng)運(yùn)行4)設(shè)計(jì)時(shí)主要解決的問(wèn)題: (1)在多級(jí)反饋隊(duì)列中,最主要的是隊(duì)列的優(yōu)先級(jí),第一隊(duì)列的優(yōu)先級(jí)最高,運(yùn)行時(shí)間最短,第二級(jí)隊(duì)列次之,運(yùn)行時(shí)間次短,最后的一級(jí)隊(duì)列運(yùn)行時(shí)間最長(zhǎng),優(yōu)先級(jí)最低。這就要求當(dāng)進(jìn)程在第一隊(duì)列運(yùn)行沒(méi)有完成時(shí),自動(dòng)進(jìn)入第二級(jí),如果完成,則進(jìn)入完成隊(duì)列。我們用時(shí)鐘來(lái)實(shí)現(xiàn),給每一個(gè)隊(duì)列中設(shè)置一個(gè)時(shí)鐘,用來(lái)設(shè)置各個(gè)隊(duì)列的時(shí)間,在外部有相應(yīng)的時(shí)鐘來(lái)控制來(lái)

6、判斷是否轉(zhuǎn)入下一級(jí)隊(duì)列還是進(jìn)入完成隊(duì)列。 (2)在最后一級(jí)隊(duì)列中,如果沒(méi)有處理完,則繼續(xù)進(jìn)入最后一級(jí)隊(duì)列的結(jié)尾,等待下一次處理,直到完成。這樣,控制最后一個(gè)的時(shí)鐘和以前的設(shè)計(jì)是不一樣的 (3)當(dāng)?shù)趇級(jí)隊(duì)列為空時(shí),處理機(jī)才能去處理i+1級(jí)隊(duì)列,也就意味著可能出現(xiàn)搶占cpu的情況,比如:當(dāng)處理機(jī)處理第三級(jí)隊(duì)列中的進(jìn)程的時(shí)候,意味著第一第二隊(duì)列已經(jīng)為空,但當(dāng)此時(shí)生成一批新進(jìn)程時(shí)(新進(jìn)程生成時(shí)只能進(jìn)入第一級(jí)隊(duì)列),這時(shí),處理機(jī)搶占進(jìn)行處理第一級(jí)隊(duì)列。實(shí)現(xiàn)的時(shí)候,管理后面隊(duì)列的時(shí)鐘總要判對(duì)他前面的所有的隊(duì)列中是否還有進(jìn)程。關(guān)于cpu的位置,我們用一個(gè)時(shí)鐘控制cpu的位置,它的時(shí)鐘頻率很高,比控制進(jìn)程處理

7、的各個(gè)時(shí)鐘的都快,這樣,他以很高的頻率掃描判斷cpu應(yīng)該在的位置。 (4)程序控制臺(tái)主要用來(lái)設(shè)置一些基本條件,比如各個(gè)隊(duì)列的時(shí)間等。5)設(shè)計(jì)界面和具體代碼: 其中:timer1 timer2 timer3 用來(lái)記錄第一第二第三隊(duì)列的時(shí)間,timer4用來(lái)控制cpu的位置 timer5,timer7,timer6來(lái)控制各個(gè)對(duì)列的添加和進(jìn)入完成隊(duì)列 設(shè)計(jì)界面如下:源代碼如下:public pcb1 as stringpublic pcb0 as stringpublic time as stringpublic time0 as stringprivate sub command1_click()

8、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 = 進(jìn)程控制塊1 time = 100 case 2 pcb = 進(jìn)程控制塊2 time = 200 case 3 pcb = 進(jìn)程控制塊3 time = 300 case 4 pcb = 進(jìn)程控制塊4 time = 400 case 5 pcb = 進(jìn)程控制塊5 time = 500 case 6 pcb = 進(jìn)程控制塊6 t

9、ime = 600 case 7 pcb = 進(jìn)程控制塊7 time = 700 case 8 pcb = 進(jìn)程控制塊8 time = 800 case 9 pcb = 進(jìn)程控制塊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 = thenmsgbox

10、 (請(qǐng)輸入生成的條件!)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 = 進(jìn)程控制塊1 time = 100 case 2 pcb = 進(jìn)程控制塊2 time = 200 case 3 pcb = 進(jìn)程控制塊3 time = 300 cas

11、e 4 pcb = 進(jìn)程控制塊4 time = 400 case 5 pcb = 進(jìn)程控制塊5 time = 500 case 6 pcb = 進(jìn)程控制塊6 time = 600 case 7 pcb = 進(jìn)程控制塊7 time = 700 case 8 pcb = 進(jìn)程控制塊8 time = 800 case 9 pcb = 進(jìn)程控制塊9 time = 900 end select list1.additem pcb list5.additem time next i timer5.enabled = true end ifend subprivate sub form_load()if f

12、orm1.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 option2_c

13、lick()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 subprivate s

14、ub 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 = true end i

15、f 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.removeitem 0 list7.

16、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 list8.removei

17、tem 0 list3.additem pcb0 list8.additem time0 - a else list3.removeitem 0 list8.removeitem 0 list6.additem pcb0 end if else msgbox (進(jìn)程完畢) end ifend ifend ifend sub四 。系統(tǒng)模塊說(shuō)明 系統(tǒng)共有三個(gè)模塊:程序控制模塊,具體實(shí)現(xiàn)模塊和處理機(jī)模塊 功能如下: 程序控制模塊:實(shí)現(xiàn)生成進(jìn)程的條件,包括兩種方式:隨機(jī)和設(shè)定,隨機(jī)生成的時(shí)候,生成要設(shè)置的所有的條件,設(shè)定時(shí),要按照后面給出的條件來(lái)設(shè)定。cpu處理模塊:由一個(gè)時(shí)鐘來(lái)控制cpu的位置,它的

18、頻率很高,基本上可以達(dá)到與新進(jìn)程同步具體實(shí)現(xiàn)模塊:實(shí)現(xiàn)多級(jí)反饋隊(duì)列的模擬。當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊(duì)列的結(jié)尾,按fcfs原則排隊(duì)等待調(diào)度,當(dāng)論到該進(jìn)程執(zhí)行時(shí), 如它能在該時(shí)間片后內(nèi)完成,便可準(zhǔn)備撤離系統(tǒng),如果它在一個(gè)時(shí)間片結(jié)束尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二個(gè)隊(duì)列的結(jié)尾,再同樣地按fcfs原則等待調(diào)度執(zhí)行;如果它在第二隊(duì)列中運(yùn)行一個(gè)時(shí)間片后仍未完成,再依次將它放入第三個(gè)隊(duì)列,如此下去,當(dāng)?shù)谝婚L(zhǎng)作業(yè)(進(jìn)程)從第一隊(duì)列依次降到第n隊(duì)列后,在第n隊(duì)列中便采用取按時(shí)間片輪轉(zhuǎn)的方式運(yùn)行。僅當(dāng)?shù)谝粋€(gè)隊(duì)列空閑時(shí),調(diào)度程序才調(diào)度第二個(gè)隊(duì)列中的進(jìn)程運(yùn)行,僅當(dāng)?shù)?(i-1)隊(duì)列均空閑時(shí),才會(huì)調(diào)

19、度第i個(gè)隊(duì)列中為某進(jìn)程服務(wù)時(shí),又有新進(jìn)程進(jìn)入優(yōu)先權(quán)比較高的隊(duì)列(第1(i-1)中的任何一個(gè)隊(duì)列),則此時(shí)新進(jìn)程將 搶占在運(yùn)行進(jìn)程的處理機(jī),即由調(diào)度程序把在運(yùn)行的進(jìn)程放回到第i隊(duì)列的結(jié)尾,把處理機(jī)分配給新到的高有限權(quán)進(jìn)程。 五 . 系統(tǒng)分調(diào)和總調(diào)報(bào)告 1) 分調(diào)報(bào)告:主要是指具體實(shí)現(xiàn)模塊和控制模塊。 具體實(shí)現(xiàn)模塊:(1) 當(dāng)timer4的頻率太快時(shí),生成的進(jìn)程剛進(jìn)入第一隊(duì)列就會(huì)處理完畢,這時(shí)體現(xiàn)不出真正的模擬,這是可以將其頻率設(shè)的慢一點(diǎn),這時(shí),他不斷的進(jìn)行判斷測(cè)試,當(dāng)發(fā)現(xiàn)第一個(gè)為空時(shí),才激活控制第二個(gè)隊(duì)列的timer5來(lái)工作。(2) 在最后的隊(duì)列中和以前的不一樣,開始時(shí)的時(shí)候把它設(shè)置的和前面一樣

20、,出現(xiàn)了還沒(méi)有運(yùn)行完成就加入完成隊(duì)列。顯然是個(gè)錯(cuò)誤。將其糾正后,正常運(yùn)行(3) 比如在處理第三隊(duì)列的進(jìn)程時(shí),新進(jìn)入隊(duì)列,則轉(zhuǎn)向處理第一隊(duì)列,這時(shí),其他的隊(duì)列的時(shí)鐘則為不可用。后面的時(shí)鐘必須判斷前面的隊(duì)列是否為空。(4) 當(dāng)進(jìn)程運(yùn)行完畢后,彈出進(jìn)程完畢的對(duì)話框,它也是由時(shí)鐘控制的,即只要全部隊(duì)列為空,就一直循環(huán)的探出對(duì)話框。這一點(diǎn)我沒(méi)有時(shí)間解決控制模塊:?jiǎn)为?dú)與此模塊,主要是測(cè)試幾個(gè)設(shè)計(jì)的視線是否正常(1) 當(dāng)單選在隨機(jī)生成的時(shí)候,所有的文本框均不可用,剛開始的時(shí)候,我把它們的可用設(shè)為真,有時(shí)可用,有時(shí)相反。這時(shí)應(yīng)該把它們置位假,而單選默認(rèn)在隨機(jī)生成,(2) 當(dāng)選擇設(shè)置時(shí),其范圍不能超出后面所給的,否則會(huì)出現(xiàn)混亂2)總調(diào)報(bào)告:總調(diào)時(shí)主要解決兩個(gè)問(wèn)題;一是如何把設(shè)置和隨機(jī)產(chǎn)生的條件賦予隊(duì)列,另一個(gè)是怎么使cpu處于正常的位置;(1) 第一個(gè)其實(shí)很簡(jiǎn)單,只要將所生成的東西賦值與pcb0 tim0即可,他們是用來(lái)記錄相應(yīng)的條件的。(2) 這個(gè)問(wèn)題有點(diǎn)復(fù)雜,因?yàn)閏pu和隊(duì)列是完全不相干的兩個(gè)方面,要實(shí)現(xiàn)機(jī)會(huì)是同步轉(zhuǎn)化基本不可能,我采取了這樣的策略:將各個(gè)時(shí)鐘的頻率置得很慢,這樣可以一方面更好的顯示處理的過(guò)程,另一方面,將cpu的時(shí)鐘置得很大,這樣timer4不停的掃描,只要前面有新加的進(jìn)程,它會(huì)在最短時(shí)間內(nèi)轉(zhuǎn)過(guò)去,原來(lái)的進(jìn)程停止(這是由具體實(shí)現(xiàn)模塊實(shí)現(xiàn)的)六. 系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論