1.調度
處理機調度是對處理機進行分配;
從進程就緒隊列中按照一定的調度算法對進程進行處理機分配,以實現併發執行;
處理機調度是多到程序操作系統的基礎,是操作系統設計的核心問題 ;
調度的層次
1)作業調度,高級調度,內存與輔存之間的調度;
2)內存調度,中級調度,提高內存的利用率和系統的吞吐量;
3)進程調度,低級調度,根據調度算法分配處理機。
三層調度的關係
1.作業調度爲進程左準備活動,選擇作業進入內存,並創建進程分配資源;內存調度處於作業調度和進程調度之間;
2.作業調度少,內存調度略多,進程調度最爲頻繁;
3.進程調度是操作系統中最基本的一種調度,不可或缺;
2.調度的時機、切換與過程
進程調度和進程切換程序都是操作系統內核程序
進程調度與進程切換有什麼樣的聯繫?
先後順序:請求進程調度的事件發送後,運行進程調度程序,從就緒隊列中調度了新的進程後,纔會進行進程之間的切換;
3.進程的調度方式
1)非搶佔式(非剝奪)調度方式,當前執行進程不因其他重要進程就緒而停止執行;
注:優:實現簡單、系統開銷小;
適用於批處理系統,不適用於分時系統和實時系統;
2)搶佔式(剝奪)調度方式,運行進程可因爲其他重要進程就緒而暫停執行;
優:提高了系統吞吐率和響應效率;
該方式需要根據調度的原則決定優先程度:優先權、短進程優先、時間片輪轉等;
4.調度的準則
調度算法的性能評判因素:
1)CPU利用率 2)系統吞吐量(cpu單位時間內完成作業數目) 3)週轉時間 4)等待時間 5)響應時間
5.調度算法
1)先來先服務調度算法(FCFS)
即可用作業調度,又可用於進程調度;
FCFS屬於不可剝奪調度算法;在執行作業過長,導致後面作業等待過長時間,故不適合分時系統和實時系統;
注:可與優先級調度算法結合,相同優先級的進程按FCFS先來先服務調度;
算法特點:簡單,但效率低;
2)短作業優先調度算法(SJF)
短作業優先調度;
不可忽視缺點:
只考慮短作業,對長作業明顯不利;
不考慮作業的重要程度;
短作業會受用戶影響;
注:SJF調度算法的平均等待時間、平均週轉時間最少;
3)優先級調度算法
根據作業或進程的優先級調度;適合實時系統;
作業調度,選擇優先級高的作業,調入內存,分配資源,並創建相應進程,插入就緒隊列;
進程調度,當有優先級更高的進程就緒能否搶佔正在執行的進程;
非搶佔式優先級調度;
搶佔式優先級調度;
進程的優先級可分爲:靜態優先級、動態優先級;
靜態優先級:創建時確定優先級,運行週期時不變;
動態優先級:運行時,根據進程動態變換調整優先級;
一般優先級:
1)系統進程>用戶進程;
2)交互進程(前端實時響應)>非交互進程(後臺運行);
3)I/O進程>計算型進程;注:I/O處理速度慢,設優先級高,先開始有助於提高系統整體效率;
4)高響應比調度算法
主要用於作業調度:選擇作業調度內存,分配資源;
綜合FCFS、SJF,同時考慮作業等待時間和估計運行時間;
響應比R_p=(等待時間+要求服務時間)/要求服務時間
適合分時操作系統;
5)時間片輪轉調度算法
將就緒進程隊列,按達到時間排成循隊列,選着當前隊頭進程運行指定時間片,eg:100ms;,時間片結束下一個進程,結束進程從新排隊;
時間片的大小決定算法效率,設置時間片影響因素有:系統響應時間、就緒進程數目、系統的處理能力;
6)多級反饋隊列調度算法
綜合****時間片輪轉調度和優先級調度,通過動態調整進程優先級和時間片大小,兼顧系統多方面目標;
算法思想:
1)設置多個進程就緒隊列,並將隊列分級,級別高該隊列優先級高;
2)每個隊列中時間片大小不同;優先級高的時間片小;
3)新進程進入內存,按優先級梯度下降FCFS調度執行直至作業完成;
總結:
優先級調度算法適合實時操作系統;
高響應比、時間片輪轉、多級反饋隊列調度適合分時操作系統;