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

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