作業 程序排程演算法

2021-09-23 15:31:38 字數 2205 閱讀 7874

排程實質是一種資源分配,排程程式從記憶體中選擇乙個可執行的程序,為之分配cpu。

作業從進入系統到後備佇列,再從執行到結束退出系統為止,期間經過不同級別的排程:

高階排程又長程排程或作業排程。是將在外存上處於後備佇列中的作業調入記憶體,為其建立程序、分配資源、放入就緒佇列。(外存 ---> 記憶體)

中級排程又稱記憶體排程。是將不能執行的程序調到外存等待(掛起狀態),當其具備影響條件且記憶體有空閒時,再調記憶體。(提高記憶體利用率,系統吞吐量)

低階排程又稱程序排程。是為就緒佇列中的程序分配處理機。(記憶體 ---> cpu)

周轉時間指作業被提交給系統開始,到作業完成為止的這段時間間隔。

周轉時間ti = 完成時間 - 到達時間

帶權周轉時間,即作業周轉時間ti與系統為它提供服務時間ts之比:

對與n個作業,每個作業帶權周轉時間為wi,則平均帶權周轉時間:

cpu利用率,即作業執行時間ci 與 周轉時間ti的比率。即:

響應比,即作業響應時間(等待時間+執行時間)與執行時間之比:

特點:

按作業(程序)先後次序進行排程;

非搶占方式。(程序一旦執行,一直到執行結束或阻塞時,才將其退出,處理機分配給其他程序)

可以採用佇列來實現。

按fsfs執行,平均作業周轉時間較長,不作為主調策略,但適合長作業。

特點:

作業計算時間越短,優先順序越高;

可採用搶占式或非搶占式;

用於高階排程。

優點:與fcfs相比,提高系統吞吐量。

缺點:需要知道作業執行時間,一般系統會估計作業執行時間,估計時間一般偏長;

對長作業不利,長作業周轉時間明顯增加,可能得不到服務(飢餓現象);

採用此演算法,人-機無法互動;

未考慮作業緊迫程度。

特點:

按照程序優先順序大小進行排程;

相同優先順序的按照fcfs順序排程;

主要用於程序。

排程演算法型別:

搶占式:處理機分配給優先順序最高的程序,但如果在其執行期間有更高優先順序的程序時,排程程式就會將處理機分配到新優先順序最高的程序;

非搶占式:一旦處理機分配給乙個程序,則其將一直執行下去,直至執行結束或是阻塞退出。

優先順序型別:

靜態優先順序: 是在程序建立時確定,在程序的執行整個期間保持不變。

動態優先順序:  是在程序建立時分配乙個優先順序,隨著程序的推進或等待時間的增加而改變。

特點:

響應比高的先排程;

非搶占策略。

優點:有利於短作業:等待時間相同,服務時間越短,響應比越高;

實現先來先服務:服務時間相同,等待時間越短,響應比越高;

即使是長作業,隨著等待時間增加,其響應比也會增加,也有機會被呼叫。

缺點:由於要計算響應比,所以增加了系統開銷。

特點:

按程序fcfs策略,組織程序就緒佇列;

確定合適大小時間片;

得到時間片的程序即被分配處理機執行,直到時間片結束或程式執行結束;

可搶占策略。

特點:

多個程序就緒佇列,每個對應乙個排程優先級別,各級不同;

各級就緒佇列中程序具有不同時間片,依優先順序從高到低成倍增加;

各級佇列按fifo原則排序。

演算法實現:

處理機排程 程序排程 作業排程演算法

在多道程式系統中,主存中有著多個程序,其數目往往多於處理機數目,這就要求系統能按照某種演算法,動態地將處理機分配給就緒佇列中的某個程序,使之執行。對於批量型作業而言,通常需要經歷作業排程 又稱為高階排程或長程排程 和程序排程 又稱為低階排程或短程排程 兩個過程後方能獲得處理機 對於終端型作業,通常只...

常見的作業排程和程序排程演算法

接下來我們分別講解一下幾種常見演算法以及它們適用的排程型別。演算法思想 演算法規則 適用排程型別 是否可以搶占 優點缺點 是否會飢餓 主要從公平的角度考慮 按照作業 程序到達的先後順序進行排程 即 優先考慮在系統中等待時間最長的作業 程序排程和作業排程 非搶占式演算法 滿足公平原則,且演算法容易實現...

程序排程與作業排程

作業排程按一定的演算法從磁碟上的 輸入井 中選擇資源能得到滿足的作業裝入記憶體,使作業有機會去占用處理器執行。但是,乙個作業能否占用處理器,什麼時間能夠占用處理器,必須由程序排程來決定。所以,作業排程選中了乙個作業且把它裝入記憶體時,就應為該作業建立乙個程序,若有多個作業被裝入記憶體,則記憶體中同時...