1、進程調度的任務是控制協(xié)調進程對CPU的競爭即按一定的調度算法從就緒隊列中選中一個進程,把CPU的使用權交給被選中的進程
2、確定算法的原則
2.1、具有公平性
2.2、資源利用率高
2.3、在交互式系統(tǒng)情況下要追求響應時間(越短越好)
2.4、在批處理系統(tǒng)情況下要追求系統(tǒng)吞吐量
3、各種進程調度算法
3.1、先進先出調度算法(FIFO) ?
按照進程就緒的先后次序來調度進程 ?
優(yōu)點:實現(xiàn)簡單 ?
缺點:沒考慮進程的優(yōu)先級
3.2、基于優(yōu)先數(shù)的調度(HPF) ?
優(yōu)先選擇就緒隊列中優(yōu)先級最高的進程投入運行,優(yōu)先級根據(jù)優(yōu)先數(shù)來決定
4、確定優(yōu)先數(shù)的方法
4.1、靜態(tài)優(yōu)先數(shù)法 ?
在進程創(chuàng)建時指定優(yōu)先數(shù),在進程運行時優(yōu)先數(shù)不變
4.2、動態(tài)優(yōu)先數(shù)法 ?
在進程創(chuàng)建時創(chuàng)立一個優(yōu)先數(shù),但在其生命周期內優(yōu)先數(shù)可以動態(tài)變化。
5、兩種占用CPU的方式
5.1、可剝奪式(可搶占式) ?
當有比正在運行的進程優(yōu)先級更高的進程就緒時,系統(tǒng)可強行剝奪正在運行進程的CPU,提供給具有更高優(yōu)先級的進程使用
5.2、不可剝奪式(不可搶占式) ?
某一進程被調度運行后,除非由于它自身的原因不能運行,否則一直運行下去
6、時間片輪轉程序調度算法(RR) ?
把CPU劃分成若干時間片,并且按順序賦給就緒隊列中的每一個進程,進程輪流占有CPU,當時間片用完時,即使進程未執(zhí)行完畢,系統(tǒng)也剝奪該進程的CPU,將該進程排在就緒隊列末尾。
7、時間片選擇問題:固定時間片,可變時間片
8、與時間片大小有關的因素: 系統(tǒng)響應時間,就緒進程個數(shù),CPU能力
9、多隊列反饋調度算法 ?
將就緒隊列分為N級,每個就緒隊列分配給不同的時間片,隊列級別越高,時間越長,級別越小,時間片越小,最后一級采用時間片輪轉,其他隊列采用先進先出;系統(tǒng)從第一級調度,當?shù)谝患墳榭諘r,系統(tǒng)轉向第二個隊列,...,當運行進程用完一個時間片,放棄CPU時,進入下一級隊列;等待進程被喚醒時,進入原來的就緒隊列;當進程第一次就緒時,進入第一級隊列
10、進程調度的時機
10.1、當一個進程運行完畢,或由于某種錯誤而終止運行
10.2、當一個進程在運行中處于等待狀態(tài)(等 待I/O)
10.3、分時系統(tǒng)中時間片到
10.4、當有一個優(yōu)先級更高的進程就緒(可搶 占式)
10.5、在進程通信中,執(zhí)行中的進程執(zhí)行了某 種原語操作(P操作,阻塞原語,喚醒原語 )
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
