天天看點

程序排程算法

程序排程算法

排程算法是指:根據系統的資源配置設定政策所規定的資源配置設定算法。

  1. 先來先服務排程算法。先來先服務(fcfs)排程算法是一種最簡單的排程算法,該算法既可用于作業排程, 也可用于程序排程。fcfs算法比較有利于長作業(程序),而不利于短作業(程序)。由此可知,本算法适合于cpu繁忙型作業, 而不利于i/o繁忙型的作業(程序)。 

  2. 短作業(程序)優先排程算法。短作業(程序)優先排程算法(sj/pf)是指對短作業或短程序優先排程的算法,該算法既可用于作業排程, 也可用于程序排程。但其對長作業不利;不能保證緊迫性作業(程序)被及時處理;作業的長短隻是被估算出來的。

程式排程算法

周轉時間=完成時間中-到達時間;    帶權周轉時間=周轉時間/服務時間;

采用sj(p)f算法後,不論是平均周轉時間還是平均帶權周轉時間,都有較明顯的改善,尤其是對短作業d,其周轉時間由原來的(用fcfs算法時)11 降為3;而平均帶權周轉時間是從5.5降到1.5。這說明sjf排程算法能有效地降低作業的平均等待時間,提高系統吞吐量

—優先權排程算法

—1) 非搶占式優先權算法

系統一旦把處理機配置設定給就緒隊列中優先權最高的程序後,該程序便一直執行下去,直至完成或因某事件使該程序放棄處理機時,系統方可再将處理機配置設定給另一優先權更高的程序。這種排程算法主要用于批處理系統中;也可用于某些對實時性要求不嚴的實時系統中。

—2) 搶占式優先權排程算法(重要)

系統把處理機配置設定給優先權最高的程序,使之執行。但在其執行期間,隻要又出現了另一個其優先權更高的程序,程序排程程式就立即停止目前程序的執行,重新将處理機配置設定給新到的優先權最高的程序;顯然,這種搶占式的優先權排程算法能更好地滿足緊迫作業的要求,故而常用于要求比較嚴格的實時系統中,以及對性能要求較高的批處理和分時系統中。

 基于時間片的輪轉排程算法

—1.時間片輪轉法

—1) 基本原理

— 系統能在給定的時間内響應所有使用者的請求。

—2) 時間片大小的确定

— 很小的時間片有利于短作業,能較快完成,但是會頻繁地發生中斷、程序上下文的切換,進而增加系統開銷;反之,時間片太長,每個程序都可以在一個時間片内完成,該算法便退化為fcfs算法,無法滿足互動式使用者的需求。是以,要選擇一個合适的時間片,較為可取的是時間片的略大于一次典型的幾乎所需要的時間。

程式排程算法

2.多級回報隊列排程算法(重要)

— 多級回報隊列排程算法不必事先知道各種程序所需的執行時間,而且還可以滿足各種類型程序的需要,因而它是目前被公認的一種較好的程序排程算法。

—排程算法的實施過程如下所述

—(1) 應設定多個就緒隊列,并為各個隊列賦予不同的優先級

— (2) 當一個新程序進入記憶體後,首先将它放入第一隊列的末尾,按fcfs原則排隊等待排程

— (3) 僅當第一隊列空閑時,排程程式才排程第二隊列中的程序運作;僅當第1~(i-1)隊列均空時,才會排程第i隊列中的程序運作

程式排程算法

—多級回報隊列排程算法具有較好的性能,能很好地滿足各種類型使用者的需要

—(1) 終端型作業使用者

—(2) 短批處理作業使用者

—(3) 長批處理作業使用者

本文由cout_sev 搜集整理

自《計算機作業系統(第三版)》(西安電子科技大學出版社),

轉載注明出處。

謝謝!

繼續閱讀