

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 操作系統(tǒng)</b></p><p><b> 課程設計</b></p><p> 題目: 進程調度算法 </p><p><b> 班級: xxx</b></p><p><b> 姓名: xxx</b></p
2、><p><b> 學號: xxx</b></p><p><b> 序號: xxx</b></p><p><b> 指導老師:xxx</b></p><p><b> 進程調度算法</b></p><p><b&g
3、t; 實驗名稱</b></p><p><b> 進程調度</b></p><p><b> 二、實驗目的</b></p><p> 通過優(yōu)先權法與輪轉調度算法的模擬加深對進程概念和進程調度過程的理解,掌握進程狀態(tài)之間的切換,同時掌握進程調度算法的實現(xiàn)方法和技巧。</p><p>
4、;<b> 三、實驗內容</b></p><p> 1、用C語言來實現(xiàn)對N個進程采用優(yōu)先算法以及輪轉算法的進程調度。</p><p> 每個用來標示進程的進程控制塊PCB用結果來描述,包括以下字段</p><p> 進程標識ID,其中0為閑逛進程,用戶進程的標識數(shù)為1、2、3、、、、、、、。(2)進程優(yōu)先級Priority,閑逛進程(i
5、dle)的優(yōu)先級為0,用戶有進程的優(yōu)先級大于0,且隨機產(chǎn)生,標識數(shù)越大,優(yōu)先級越高。</p><p> 進程占用的CPU時間CPUtime,進程每運一次,累積等于4.</p><p> ?。?)進程總共需要運行時間Alltime,利用隨機函數(shù)產(chǎn)生。</p><p> ?。?)進程狀態(tài),0—就緒態(tài),1—運行態(tài),2—阻塞態(tài)。</p><p>
6、?。?)隊列指針next,用來將多個進程控制塊PCB鏈接為隊列。</p><p> 3、優(yōu)先數(shù)改變的原則</p><p> ?。?)進程在就緒隊列中每呆一個時間片,優(yōu)先數(shù)增加1.</p><p> ?。?)進程每運行一個時間片,優(yōu)先數(shù)增加1.</p><p> 4、在調度前,系統(tǒng)中擁有的進程數(shù)PCB_number有鍵盤輸入,進初始化后,所
7、有的進程控制塊PCB連接成就緒隊列。</p><p> 5、為了清楚的觀察諸進程的調度過程,程序應將每個時間片內的進程的情況顯示出來。</p><p><b> 四、實驗步驟</b></p><p> 1、進程管理程序調式好后,運行進程管理程序</p><p><b> Y</b></
8、p><p><b> N</b></p><p><b> N</b></p><p> Y </p><p><b> Y</b></p><p><b> N </b></p><p
9、><b> N</b></p><p><b> Y </b></p><p> Y Y</p><p> N </p><p><b> N </b></p&g
10、t;<p><b> Y</b></p><p><b> 2、優(yōu)先權調度</b></p><p> ?。?)輸入1選擇優(yōu)先權調度算法模擬。</p><p> ?。?)輸入開始進程個數(shù)n,創(chuàng)建n個PCB并加入就緒隊列ready_queue中。</p><p> ?。?)就緒隊列re
11、ady_queue不為空,調度就緒隊列中第一個進程運行,否則,從閑逛隊列idleprocess中調度閑逛進程運行。</p><p> ?。?)在運行過程中,當遇到阻塞,則該進程插入到阻塞隊列block_queue中,且將該進程從ready_queue中刪除。</p><p> ?。?)如果運行時間CPUtime大于等于Alltime,該進程運行完畢,釋放該進程;否則插入到就緒隊列中。<
12、;/p><p> ?。?)更新就緒隊列中的優(yōu)先級數(shù)。</p><p> ?。?)隨機對阻塞隊列block_queue中的進程PCB詢問是否要喚醒,喚醒,即從喚醒隊列中選擇第一個進程,且插入就緒隊列中;阻塞隊列中沒有阻塞進程返回。</p><p> ?。?)重復上述步驟,直到本次調度結束。</p><p><b> 3、輪轉調度<
13、/b></p><p> ?。?)輸入2選擇優(yōu)先權調度算法模擬。</p><p> ?。?)輸入開始進程個數(shù)n,創(chuàng)建n個PCB并加入就緒隊列ready_queue中。</p><p> ?。?)就緒隊列ready_queue不為空,調度就緒隊列中第一個進程運行,否則,從閑逛隊列idleprocess中調度閑逛進程運行。</p><p>
14、 (4)在運行過程中,當遇到阻塞,則該進程插入到阻塞隊列block_queue中,且將該進程從ready_queue中刪除。</p><p> (5)如果運行時間CPUtime大于等于Alltime,該進程運行完畢,釋放該進程;否則插入到就緒隊列中。</p><p> ?。?)隨機對阻塞隊列block_queue中的進程PCB詢問是否要喚醒,喚醒,即從喚醒隊列中選擇第一個進程,且插入就
15、緒隊列中;阻塞隊列中沒有阻塞進程返回。</p><p> ?。?)如果時間到,本次調度結束,否則重復上述步驟,直到本次調度結束。</p><p> 四、實驗過程中遇到的問題及解決方案</p><p> 1、請仔細閱讀動態(tài)優(yōu)先權的進程調度算法的模擬實現(xiàn)代碼,說明該算法與教材中介紹的算法做了哪些簡單化處理.</p><p> 優(yōu)先權模擬時優(yōu)
16、先權是隨機產(chǎn)生,在實際的系統(tǒng)中,系統(tǒng)進程的優(yōu)先權高于一般用戶進程的優(yōu)先權。</p><p> 2、為什么對進程的優(yōu)先數(shù)可按上述原則進行修改?</p><p> 最高優(yōu)先權調度算法僅照顧了優(yōu)先權高的進程,當不斷有優(yōu)先權高的進程需調度時,而優(yōu)先權低的進程將很難得到處理機的調度,所以進程在就緒隊列中每呆一個時間片,優(yōu)先數(shù)增加1,使優(yōu)先權低的進程不總是忙等。</p><p&
17、gt; 3、請給出設計實現(xiàn)的輪轉發(fā)進程調度算法的設計思想.</p><p> 時間輪轉調度算法:系統(tǒng)將所有的就像進程按先來先服務的原則,排成一個隊列,每次調度時,把CPU分配給首進程,并令其執(zhí)行一個時間片。當執(zhí)行的時間片用完時,發(fā)出中斷請求,調度程序便據(jù)此信號來停止該進程的執(zhí)行,并將其送到就緒隊列的末尾,如此反復,就可以保證就緒隊列中的所有進程在一個給定的時間內,均能獲得一時間片處理機執(zhí)行時間。</p&
18、gt;<p> 4、在實際的進程調度中,除了按調度算法選擇下一個執(zhí)行的進程外,還應處理哪些工作?</p><p> 最高優(yōu)先權調度算法,常用于批處理系統(tǒng)中,作為作業(yè)調度算法,也作為多種操作系統(tǒng)中的進程調度算法,還可以用于實時系統(tǒng)中:時間輪轉調度算法,一般用于分時系統(tǒng)中。</p><p><b> 五、課程設計總結</b></p>&l
19、t;p> 1、當把該算法用于作業(yè)調度時,系統(tǒng)將從后備隊列中選擇若干個優(yōu)先權最高的作業(yè),裝入內存,當用于進程調度算法時,該算法是把處理及分配給就緒隊列中優(yōu)先權最高的進程。</p><p> 2、當系統(tǒng)空閑(就緒隊列為空)時,系統(tǒng)運行閑逛進程,否則運行其他進程,發(fā)生變遷(就緒運行)</p><p> 3、在運行進程(包括閑逛進程)的過程中,可能發(fā)生變遷2(運行阻塞),即將運行進程插
20、入到阻塞隊列(閑逛進程不能不被阻塞),可能有其他的進程創(chuàng)建PCB,還可能喚醒阻塞隊列中的某些進程PCB,發(fā)生變遷3(阻塞就緒),即從阻塞隊列中插入就緒隊列中。</p><p> 4、時間片運行結束后,若進程累積占用CPU時間大于等于進程需要運行時間,則進程執(zhí)行結束,釋放其PCB。若進程累積占用CPU時間小于進程需要運行時間,發(fā)生變遷4(運行就緒),即將當前運行的進程插入就緒隊列中。</p><
21、;p><b> 六、心得體會</b></p><p> 我剛開始接觸到這個題目的時候就有點蒙了,因為對于操作系統(tǒng),平時都是在紙上寫寫畫畫,對于書本上的理論知識掌握的還可以,但一想到實踐,有點膽怯了,就算再膽怯,課程設計還是得做的,我只好借助圖書館和網(wǎng)絡資源來完成這項課程設計。</p><p> 于是我通過從圖書館借書、上網(wǎng)查找資料來實現(xiàn)這個題目,這著實讓我
22、體會到軟件工程的艱辛,整個程序可能因為一個細小部分而花去你數(shù)倍的時間去調試,使我明白調試是開發(fā)人員一項非常重要的基本功,通過這次課程設計,我對本專業(yè)有了更多的深刻認識,也收獲了很多的成長。</p><p> 通過課程設計使我對有了對理論知識更深的理解,對以前學習中不明白的,不理解的都有了進一步的理解。在實際操作中遇到了很多困難,但通過找資料,請教同學,使我的動手能力和溝通能力都有了提高。在整個課程設計中總是在編
23、寫程序中發(fā)生錯誤,有時會很沒耐性,但都被我一一克服了,編程一定要有耐心,同時還有認真仔細,盡量保證不出現(xiàn)錯誤。編程要有條理,不僅使自己要看懂 ,別人也能看懂,這樣有利于程序的改正。</p><p> 在做完這個課程設計時,心里有種說不出來的高興,雖然是通過看書和上網(wǎng)查找資料完成的設計,而且課設的難度也不是很大,但還是有一種成就感,因為畢竟自己動手了,也從中學到了知識,還增強了自己的自信心,我相信在今后的學習中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設計--進程調度算法
- 操作系統(tǒng)課程設計---進程調度算法
- 進程調度算法操作系統(tǒng)課程設計
- 操作系統(tǒng)課程設計--進程調度算法
- 進程調度算法操作系統(tǒng)課程設計 (2)
- 操作系統(tǒng)課程設計——進程調度模擬算法
- 操作系統(tǒng)_進程調度算法課程設計報告
- 操作系統(tǒng)課程設計——進程調度模擬算法
- 操作系統(tǒng)進程調度課程設計
- 操作系統(tǒng)進程調度課程設計
- 操作系統(tǒng)課程設計---多級反饋隊列進程調度算法
- 操作系統(tǒng)進程調度課程設計報告
- 操作系統(tǒng)課程設計-進程調度模擬
- 操作系統(tǒng)課程設計---進程調度模擬設計
- 操作系統(tǒng)課程設計--進程調度程序設計
- 操作系統(tǒng)課程設計---磁盤調度算法
- 操作系統(tǒng)課程設計---進程調度子系統(tǒng)模擬實現(xiàn)
- 操作系統(tǒng)課程設計--磁盤調度算法實踐
- 操作系統(tǒng)課程設計報告--磁盤調度算法
- 操作系統(tǒng)課程設計報告--磁盤調度算法
評論
0/150
提交評論