天天看點

作業系統_排程算法

目錄

​​說明​​

​​1,先來先服務排程算法(First-Come First-Served,FCFS)​​

​​概述​​

​​本質​​

​​特點​​

​​2,短作業/短程序優先算法(Short Job/Process First,SJF/SPF)​​

​​概述​​

​​本質​​

​​特點​​

​​3,高優先權優先排程算法(FPF或Priority-Scheduling Algorithm,PSA)​​

​​概述​​

​​說明​​

​​優先權:算法的核心​​

​​程序的優先權​​

​​優先權的确定​​

​​4,高響應比優先排程算法(Highest Response Ratio Next,HRRN)​​

​​概述​​

​​說明​​

​​特點​​

​​5,基于時間片的輪轉(Round Robin,RR)排程算法​​

​​概述​​

​​時間片選擇​​

​​時間片大小選擇​​

​​6,多隊列排程算法​​

​​7,多級回報隊列排程算法​​

​​概述​​

​​算法概述​​

​​特點​​

說明

實質是一種資源配置設定方法,因而排程算法是指:根據系統的資源配置設定政策所規定的資源配置設定算法

對于不同的系統和系統目标,通常采用不同的排程算法,例如,在批處理系統中,為了照顧為數衆多的短作業,應采用短作業優先的排程算法.又如在分時系統中,為了保證系統具有合理的響應時間,應采用輪轉法進行排程。

目前存在的多種排程算法中,有的算法适用于作業排程,有的算法适用于程序排程;但也有些排程算法既可用于作業排程,也可用于程序排程。

排程算法很少有絕對的好壞!

1,先來先服務排程算法(First-Come First-Served,FCFS)

概述

  • 既可用于作業排程,也可用于程序排程。
  • 用于作業排程:每次排程都是從後備作業隊列中,選擇一個或多個最先進入該隊列的作業,将它們調入記憶體,為它們配置設定資源、建立程序,然後放入就緒隊列。
  • 用于程序排程:則每次排程是從就緒隊列中,選擇一個最先進入隊列的程序,為之配置設定處理機,使之投入運作。

本質

僅考慮“到達時間”;

特點

  • 實作簡單;
  • 貌似公平;
  • 實際上,對短作業不公平。

2,短作業/短程序優先算法(Short Job/Process First,SJF/SPF)

概述

  • 既可用于作業排程(SJF),也可用于程序排程(SPF)
  • 用于作業排程:每次排程都是從後備作業隊列中,選擇一個要求服務時間(執行時間)最短的作業,将它們調入記憶體,為它們配置設定資源、建立程序,然後放入就緒隊列。
  • 用于程序排程:則每次排程是從就緒隊列中,選擇一個執行時間最短的程序,為之配置設定處理機,使之投入運作;
  • 實際應用表明,SJF的性能要優于FCFS排程算法的;

本質

僅考慮“執行時間”;

特點

  • 實作困難:估算執行時間很難;
  • 有利于短作業
  • 對長作業不公平。

3,高優先權優先排程算法(FPF或Priority-Scheduling Algorithm,PSA)

概述

  • 既可用于作業排程,也可用于程序排程。
  • 用于作業排程時:系統将從後備隊列中選擇若幹個優先權最高的作業,裝入記憶體。
  • 用于程序排程時:該算法是把處理機配置設定給就緒隊列中優先權最高的程序。分為非搶占式優先權算法和搶占式優先權排程算法。

說明

  • 對于FCFS算法,作業的等待時間就是作業的優先級,等待時間越長,其優先級越高。
  • 對于SJF算法,作業的長短就是作業的優先級,作業所需運作的時間越短,其優先級越高。
  • 但上述兩種優先級都不能反映作業的緊迫程度。
  • 而在優先級排程算法中,則是基于作業的緊迫程度,由外部賦予作業相應的優先級,排程算法是根據該優先級進行排程的。這樣就可以保證緊迫性作業優先運作。

優先權:算法的核心

  • 反映作業/程序執行時的迫切程度,是對排程所考慮的實際因素的算法抽象。
  • 通常用1個整型數來表示。

程序的優先權

搶占式優先權(程序排程):高優先權程序到達時,立刻停止低優先權程序的執行,讓高優先權程序執行。

非搶占式優先權(程序排程):高優先權作業程序到達時,須等待低優先權程序執行完畢或主動釋放CPU。

優先權的确定

靜态優先權:程序建立時确定(根據程序類型、資源需求和使用者要求等),直到程序執行結束,保持不變。

動态優先權:程序建立時确定(根據程序類型、資源需求和使用者要求等)初始優先權,在程序執行過程中,可以發生變化。

4,高響應比優先排程算法(Highest Response Ratio Next,HRRN)

概述

  • 用于作業排程。
  • 系統将從後備隊列中選擇若幹個響應比(優先權)最高的作業,裝入記憶體,投入運作。
  • 核心:對等待作業以一定速率a提高其優先權。

說明

作業系統_排程算法

由于等待時間與服務時間之和就是系統對該作業的響應時間,故該優先級又相當于響應比Rp。據此,優先又可表示為:

作業系統_排程算法

特點

  • 如果作業的等待時間相同,則要求服務的時間愈短,其優先權愈高,因而該算法有利于短作業。
  • 當要求服務的時間相同時,作業的優先權決定于其等待時間,等待時間愈長,其優先權愈高,因而它實作的是先來先服務。
  • 對于長作業,作業的優先級可以随等待時間的增加而提高,當其等待時間足夠長時,其優先級便可升到很高,進而獲得處理機。
  • 既照顧了短作業,又考慮了作業到達的先後次序,不會使長作業長期得不到服務。是以,該算法實作了一種較好的折衷。
  • 須做響應比計算,會增加系統開銷

5,基于時間片的輪轉(Round Robin,RR)排程算法

概述

  • 用于作業排程或程序排程。
  • 在早期的時間片輪轉法中,系統将所有的就緒程序按先來先服務的原則,排成一個隊列,每次排程時,把CPU配置設定給隊首程序,并令其執行一個時間片。
  • 當執行的時間片用完時,由一個計時器發出時鐘中斷請求,排程程式便據此信号來停止該程序的執行,并将它送往就緒隊列的末尾;
  • 然後,再把處理機配置設定給就緒隊列中新的隊首程序,同時也讓它執行一個時間片。
  • 保證響應時間:就緒隊列中的所有程序,在給定時間内,均能獲得一個時間片的處理機執行時間。換言之,系統能在給定的時間内,響應所有使用者的請求。
  • 時間片的大小從幾毫秒 到幾百毫秒。

時間片選擇

  • 固定時間片。
  • 可變時間片。

時間片大小選擇

  • 不可太大:影響最大響應時間(等待時間+要求服務時間):T=nq;其中,n為程序數量,q為時間片大小。
  • 不可太小:排程開銷,增加周轉時間;

6,多隊列排程算法

  • 将系統中的程序就緒隊列從一一個拆分為若幹個;
  • 将不同類型或性質的程序固定配置設定在不同的就緒隊列,不同的就緒隊列采用不同的排程算法;
  • 一個就緒隊列中的程序可以設定不同的優先級,不同的就緒隊列本身也可以設定不同的優先級。

7,多級回報隊列排程算法

作業系統_排程算法

概述

  • 設定多個就緒隊列,為各隊列賦予不同的優先級。第1個隊列的優先級最高,其餘隊列優先權逐個降低。
  • 賦予各個隊列中程序執行時間片的大小各不相同:優先權愈高的隊列中,為每個程序所規定的執行時間片就愈小。
  • 僅當第1隊列空閑時,排程程式才排程第2隊列中的程序運作;僅當第1~(i-1)隊列均空時,才會排程第i隊列中的程序運作。
  • 如果處理機正在第i隊列中為某程序服務時,又有新程序進入優先權較高的隊列(第1~(i-1)中的任何一個隊列),則此時新程序将搶占正在運作程序的處理機(正在運作程序被放回原所在隊列末尾)。

算法概述

  1. 對新建立程序,首先将它放入第1隊列末尾,按FCFS原則排隊等待排程。
  2. 當輪到該程序執行時,如它能在該時間片内完成,則結束; 如果未完成,排程程式便将該程序轉入第2隊列的末尾,再同樣按FCFS原則等待排程執行;
  3. 如果它在第2隊列中運作1個時間片後仍未完成,再依次将它放入第3隊列…。如此下去,當1個長作業(程序)從第1隊列依次降到第n隊列後,在第n隊列中便采取按時間片輪轉的方式運作。

特點

  1. 避免了事先計算各種程序所需的執行時間。
  2. 具有較好的性能,能較好地滿足各種類型使用者需要:
  • 終端型作業使用者:終端型作業大多屬于互動型作業,作業通常較小,系統隻要能使這些作業(程序)在第一隊列所規定的時間片内完成,便可使終端型作業使用者都感到滿意。
  • 短批處理作業使用者:對于很短的批處理型作業,開始時像終端型作業一樣,如果僅在第一隊列中執行一個時間片即可完成,便可獲得與終端型作業一樣的響應時間。對于稍長的作業,通常也隻需在第二隊列和第三隊列各執行一個時間片即可完成,其周轉時間仍然較短。
  • 長批處理作業使用者: 對于長作業,它将依次在第1, 2, …,n個隊列中運作,然後再按輪轉方式運作,使用者不必擔心其作業長期得不到處理。

繼續閱讀