0.處理機排程的層次
高階排程(high level scheduling):又稱長程排程或作業排程,它的排程物件是作業。決定將外存上處於後備佇列中的哪幾個作業調入記憶體。高階排程主要用於多道批處理系統中,在分時和實時系統中不設定高階排程。
低階排程(low level scheduling):又稱短程排程或程序排程,它的排程物件是程序(或核心級執行緒)。它決定哪個程序獲得處理機,並將處理機分配給選中的程序。
中級排程(intermediate scheduling):又稱記憶體排程。引入中級排程是為了提高記憶體利用率和系統的吞吐量,將哪些暫時不能執行的程序調至外存等待,此時這些程序的狀態稱為就緒駐外狀態(或掛起狀態)。當它們具備執行條件且稍有空閒時,由中級排程來決定,將外存上具備執行條件的就緒程序重新調入記憶體,並修改其狀態為就緒狀態。
一、作業排程
1. 批處理系統中的作業
作業不僅包含了程式和資料,還應該配有乙份作業說明書。在批處理系統中,以作業為基本單位從外存調入記憶體,並且為了管理和排程作業,設定了jcb(作業控制塊)。
作業執行有三個階段:收容階段、執行階段、完備階段,三個階段對應三個狀態:後備狀態、執行狀態、完備狀態。
2.常見的作業排程演算法
①先來先服務(fcfs)排程演算法
該方法簡單粗暴,可用於作業排程和程序排程。它按照作業(或程序)到達的先後次序進行排程,其他的不考慮。
②短作業優先(sjf)排程演算法
它從外存的作業後備佇列中選擇若干個估計執行時間最短的作業,優先將它們調入記憶體執行。
③優先順序排程演算法(psa)
從外存的作業後備佇列中選擇若干個優先順序高作業,優先將它們調入記憶體執行。
④高響應比優先排程演算法(highest response ratio next,hrrn)
hrrn綜合考慮了等待時間和要求服務時間,引入優先權來表示作業的優先順序,優先權的計算方法如下:
二、程序排程
程序排程機制
程序排程機制中,有三個基本部分:
(1)排隊器:負責將就緒程序按照一定的策略排成乙個或多個佇列。
(2)分派器:根據程序排程程式選定程序從就緒佇列中選出,然後進行從分派器到新選出的程序間的上下文切換,將處理機分配給新選出的程序。
(3)上下文切換器:保留當前程序的cpu現場,裝入新選程序的cpu現場資訊
程序排程方式
(1)非搶占式:處理機分配給程序後一直讓它執行下去,直至程序完成或阻塞
(2)搶占式:允許排程程式根據規則去暫停某個正在執行的程序
程序排程演算法
(1)時間片輪轉(round robin)演算法:讓就緒佇列上的每個程序每次僅執行乙個時間片
(2)優先順序排程演算法:
a.非搶占式優先順序排程演算法:優先順序高的程序處於等待佇列的最前面,不會干擾正在執行的程序
b.搶占式優先順序排程演算法:占有cpu的程序永遠是當前記憶體中優先順序最高的程序
優先順序型別:
a.靜態優先順序:建立程序時確定,程序執行期間保持不變
b.動態優先順序:在程序建立之初,先賦予其乙個優先順序,然後其值隨著程序的推進或者等待時間的增加而改變
(3)多佇列排程演算法:
設定多個就緒佇列,對每個就緒佇列可以實施不同的排程演算法。
(4)多級反饋佇列排程演算法:
a. 設定多個就緒佇列,並為每個佇列賦予不同的優先順序,第乙個佇列優先順序最高,其餘佇列優先順序逐個降低。為不同佇列中的程序賦予的執行時間片大小也各不相同,優先順序越高,時間片越小。
b. 每個佇列採取fcfs演算法。新程序進入記憶體後,先將他放到第一佇列末尾,當輪到它執行時,如果它能在該時間片內完成,便可撤離。否則轉入第二佇列末尾……
c. 按佇列優先順序排程。首先排程最高優先順序佇列中的諸程序執行,當第一佇列空閒時才會排程第二佇列中的程序執行。如果處理機正在執行第i佇列中的某個程序時,有高優先順序的新程序進入高優先順序的佇列,此時必須把正在執行的程序放回到第i佇列的末尾,把處理機分配給新到的高優先順序程序。
三、實時排程
實時系統中,存在hrt任務和srt任務,他們都聯絡著乙個截止時間,實時排程必須滿足實時任務對截止時間的要求。
注:hrt,hard real-time,硬實時任務,srt,soft real-time,軟實時任務。硬實時要求在規定的時間內必須完成操作,這是在作業系統設計時保證的;軟實時則只要按照任務的優先順序,盡可能快地完成操作即可。
實時排程演算法的分類
①根據實時排程的演算法分為硬實時排程演算法
②根據排程方式,分為非搶占排程演算法和搶占排程演算法
(1)非搶占排程演算法:非搶占式輪轉排程演算法、非搶占式優先排程演算法
(2)搶占式排程演算法:
a.基於時鐘中斷的搶占式優先順序排程演算法。在實時任務到達後,如果它的優先順序高於當前任務的優先順序,並不會立即搶占當前任務的處理機,等時鐘中斷發生時,排程程式才會剝奪當前任務的執行,將處理機分配給新到的搞優先順序任務。
b.立即搶占的優先順序排程演算法。一旦出現外部中斷,只要當前任務未處於臨界區,立即剝奪當前任務的執行,把處理機分配給請求中斷的緊迫任務。
常用的實時排程演算法
①最早截止時間優先edf(earliest deadline firest)演算法
②最低鬆弛度優先llf(least laxity first)演算法
任務的優先順序依據其鬆弛度決定,鬆弛度越低,優先順序越高
任務的鬆弛度=必須完成的時間-還需執行的時間-當前時間
//這類題目要會畫圖和列表,一定要整潔和清楚
//那個優先順序倒置的知識點挺有意思的
//如有錯誤,歡迎指正
處理機排程筆記1
處理機排程層次 1 高階排程 又叫作業排程 長程排程。排程物件為作業。根據某種演算法,將外存上後備佇列中的乙個或幾個作業調入記憶體。並為他們建立程序 分配資源 插入就緒佇列。高階排程只在多道批處理系統中,分時和實時系統中沒有 因為分時系統和實時系統沒有後備佇列,又叫輸入井 2 低階排程 又叫程序排程...
處理機排程
如果沒有處理機排程,則意味著必須等待當前程序執行完畢後下一程序才能執行,而程序常需等待外設的輸入,i o的速度相比處理機是非常慢的,因此這會對處理機資源造成嚴重浪費。引入排程後,可在執行程序等待輸入時把處理機排程給其他程序,從而提高處理機的利用率。作業排程 高階 在外存的作業中挑選乙個或多個作業,給...
處理機排程
多道程式系統中,程序的數量往往多於處理機的個數,程序爭用處理機的情況在所難免。處理機排程是對處理機進行分配,即從就緒佇列中按照一定的演算法選擇乙個程序並將處理機分配給它執行,以實現程序併發執行。乙個作業從提交到完成,經歷以下 排程 作業排程 從外存中選擇乙個或多個作業,分配記憶體 輸入 輸出等必要資...