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

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