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

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