處理器排程的目標是以滿足系統目標(如響應時間、吞吐率、處理器效率)的方法,把程序分配到乙個或多個處理器中執行。
處理器排程有三個層次:
長程排程:又稱高階排程,作業排程,其決定是否能加入待執行的程序池中
中程排程:又稱中級排程,平衡負載排程,其決定加入部分或全部在記憶體中的程序集合中
短程排程:又稱低階排程,程序排程,其決定哪個可執行的程序將被處理器執行
在程序七態轉換中就涉及到這三種轉換:
從根本上說,排程屬於佇列管理方面的問題,用來在排隊環境中減少延遲和優化效能
1.1 長程排程
長程排程程式決定哪乙個程式可以進入系統中處理,因此,它控制著系統併發度。
所以,關於何時建立乙個新程序的決策通常由要求的系統併發度來驅動。
1、建立的程序越多,每個程序可以執行的時間所佔百分比就越小
2、每當乙個作業中止時,排程程式可以決定增加乙個或多個新作業
3、如果處理器的空閒時間片超過了一定的閥值,也可能會啟動長程排程
1.2 中程排程
中程排程是交換功能的一部分。
1.3 短程排程
主要功能:
1、記住程序或者核心級執行緒的狀態
2、決定某個程序或者核心級執行緒什麼時候獲得處理器,以及占用多長時間
3、把處理器分配個程序或核心級執行緒
4、**處理器
短程排程的主要目標是按照優化系統乙個或多個方面行為來分配處理器時間。通常的準則可以按照兩維來分類:面向使用者的準則和面向系統的準則。
具體可以細分為:
面向使用者,與效能相關
周轉時間
指的是乙個程序提交到完成的時間間隔,包括實際執行的時間加上等待資源(包括處理器資源)的時間。
響應時間
對乙個互動程序,這是指從提交乙個請求到開始響應的時間間隔。應當使得互動式用於的響應時間盡可能小,或盡快出來處理實時任務
最後期限
當可以指定程序完成的最後期限時,排程原則將降低其他目標,使得最後滿足期限的作業數目的百分比達到最大
面向系統,與效能相關
吞吐量
單位時間處理的程序數盡可能多tps處理器利用率
這是處理器出於忙的狀態的時間比。使cpu或者其他資源的使用率盡可能高而且能夠並行工作
面向系統,其他
公平性
確保每個使用者每個程序獲得合理的cpu份額或其他資源份額
2.1 排程演算法
先來先服務(fcfs)
選擇等待服務時間最長的程序
輪轉(rr)
使用時間片限制任何正在執行的程序只能使用一段處理器時間,並在所有就緒佇列程序中輪轉
最短程序優先(spn)
選擇預期處理時間最短的程序,並且不搶占該程序
最短剩餘時間(srt)
選擇預期的剩餘時間最短的程序。當乙個程序就緒時,這個程序可能會被搶占
最高相應比優先(hrrn)
排程決策基於歸一化周轉時間的估計
反饋建立一組排程佇列,基於每個程序的執行歷史和其他一些準則,把他們分配到各個佇列中。
處理器排程
1 cpu排程的相關概念 a.cpu排程 其任務是控制 協調程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 如果沒有就緒程序,系統會安排乙個系統空閒程序或idle程序 b.cpu要解決的三個問題 cpu排程的時機 就緒佇列的改變引發了重新排程 事件...
處理器排程
處理器排程演算法設計從以下幾個方面著手 資源利用率 吞吐率 公平性 響應時間 周轉時間 截止時間的保證 優先權原則等等。cpu利用率 cpu有效工作時間 cpu總的執行時間 cpu總執行時間 cpu有效工作時間 cpu空閒等待時間 吞吐率 單位時間內cpu處理的作業數 公平性 確保程序不會出現餓死現...
處理器排程
1 高階排程 也稱作業排程或者長程排程。根據作業排程演算法選擇外存上處於後備佇列中的某些作業調入記憶體,為它們分配必要的資源 建立相關程序。2 中級排程 也稱平衡排程或者中程排程。涉及程序的內外存間的排程,當主存資源緊張將暫不執行的程序調至外存,程序 掛起 狀態,當程序又具備執行條件且主存資源又空閒...