調度過程

調度過程

在多道程式環境下,主存中有著多個進程,其數目往往多於處理機數目。這就要求系統能按某種算法,動態地把處理機分配給就緒佇列中的一個進程,使之執行,這一過程稱為調度。調度的實質是一種資源分配。調度過程是指處理機根據調度策略從就緒佇列中選擇一個進程運行的過程。

基本介紹

  • 中文名:調度過程
  • 外文名:Scheduling Process
  • 學科:計算機
  • 定義:選擇一個進程運行的過程
  • 有關術語:調度
  • 領域:處理機調度
簡介,進程調度方式,非剝奪調度方式,剝奪調度方式,調度的基本準則,CPU利用率,系統吞吐量,周轉時間,等待時間,回響時間,典型的調度算法,FIFS先來先服務調度算法,SJF短作業優先調度算法,高回響比優先調度算法,時間片輪轉調度算法,多級反饋佇列調度算法,上下文切換機制,

簡介

調度在計算機中是分配工作所需資源的方法。資源可以指虛擬的計禁炒催院算資源,如執行緒進程數據流;也可以指硬體資源,如處理器、網路連線或擴展卡。調度過程是指處理機根據調度策略從就緒佇列中選擇一個進程運行的過程。調度過程與很多因素有關。如調度方式、調度的基本準則、調度算法。在調度過程中還有進程間上下文切換這一過程。

進程調度方式

所謂進程調度方式是指當某一個進程正在處理器上執行時,若有某個更為重要或緊迫的進程需要處理,既有優先權更高的進程進入就緒佇列,此時應如何分配處理器。通常有一下兩種進程調度方式:

非剝奪調度方式

非剝奪調度方式又稱為非搶占調度方式,是指當一個進程正在處理器上執行時,即使有某個更為重要或緊迫的進程進入就緒狀態,仍然讓正在執行的進程繼續執行,知道該進程完成或發生某種時間而進入阻塞狀態時,才把處理器分配給更為重要或緊迫的進程。

剝奪調度方式

剝奪調度方式又稱為搶占方式,是指當一個進程正在處理器上執行時,若有某個更為重要或緊迫的進程需要使用處理器,則立即暫停正在執行的進程,將處理器分配給這個更為重要或緊迫的進程。
“剝奪”不是一種任意性行為,必須遵循一定的原則:優先權原則,短進程優先原則和時間片原則。

調度的基本準則

不同的調度算法具有不同的特性,在選擇調度算法時,必須考慮算法所具有的特性。為了比較處理器調度算法的性能,人們提出很多評價準則,下面介紹主要的幾種準則:

CPU利用率

CPU是計算機系統中最重要的資源之一,所以應儘可能使CPU保持在忙狀態,是這一資源利用率最高。

系統吞吐量

系統吞吐量表示單位時間內CPU完成作業的數量。長作業需要消耗較長的處理器時間,因此會降低系統的吞吐量。而對於短作業,他們所需要消耗的處理器時間端,因此能提高系統的吞吐量。調度算法和方式的不同,也會對系統的吞吐量產生較大的影響。

周轉時間

周轉時間是指從作業提交到作業完成所經歷的時間,包括作業等待、在就緒佇列中排隊、在處理器上運行以及進行輸入輸出操作所花費的時間的總和。
作業的周轉時間=作業完成時間-作業提交時間

等待時間

等待時間是指進程處於等處理器狀態時間之和,等待時間越長,用戶滿意度越低。處理器調度算法實際上並不影響作業執行或輸入輸出操作時間,只影響作業在就緒佇列中等待所花的時間。因此,衡量一個調度算法優劣常常只需簡單地考察等待時間。

回響時間

回響時間是指從用戶提交請求到系統首次產生回響所有的時間。在互動式系統中,周轉時間不可能是最好的評測準則,一般採用回響時間作為衡量調度算法的重要準則之一。從用戶的角度來看,調度策略應儘量降低回響時間,使回響時間處在用戶能夠接受的範圍之內。

典型的調度算法

通常系統的設計目標不同,所採用的員挨臭調度算法也不同。在作業系統中存在多種調度算法,其中有的調度算法適用於作業調度,有的調度算法適用於進程調度,有的調度算法兩者都適用。下面介紹幾種常用的調度算法:

FIFS先來先服務調度算法

特點:算法簡單,但是效率低;有利於長作業,不利於短作業;有利於CPU繁忙型作業而不利於IO繁忙型作業。

SJF短作業優先調度算法

短作業(進程)優先調度算法是指對短作業禍灑束詢端進程優先調度的算法。短作業優先調度算法是駝蘭乘酷從後備佇列中選擇一個或若干個估計運算時間最短的作業,將他們呢掉入記憶體運行。
SJF調度算法的缺點:
1) 該算法對長作業不理。
2) 該算法完全檔兆未考慮作業的緊迫程度
3) 由於作業的長短只根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意的縮短其作業的估計運行時間,致使該算法不一定能真正做到算作業優先調度。
4) 注意:SJF調度算法的平均等待時間、平均周轉時間最少。

高回響比優先調度算法

高回響比優先調度算法主要用於作業調度。同時考慮從每個作業的等待時間和估計需要運行的時間。

時間片輪轉調度算法

時間片輪轉調度算法主要適用於分時系統。

多級反饋佇列調度算法

多級反饋佇列調度算法主要是時間片輪轉調度算法和優先權調度算法的綜合和發展。通過動態調整進程優先權和時間片大小,多級反饋佇列調度算法整鞏辯可以兼顧多方面的系統目標。

上下文切換機制

當對處理機進行切換時,會發生兩對上下文切換操作。在第一對上下文切換時,作業系統將保存當前進程的上下文,而裝入分派程式的上下文,以便分派程式運行;在第二對上下文切換時,將移出分派程式,而把新選進程的 CPU 現場信息裝入到處理機的各個相應暫存器中。
應當指出,上下文切換將花去不少的處理機時間,即使是現代計算機,每一次上下文切換大約需要花糠糊欠費幾毫秒的時間,該時間大約可執行上千條指令。為此,現在已有通過硬體(採用兩組或多組暫存器)的方法來減少上下文切換的時間。 一組暫存器供處理機在系統態時使用,另一組暫存器供應用程式使用。在這種條件下的上下文切換隻需改變指針,使其指向當前暫存器組即可。

典型的調度算法

通常系統的設計目標不同,所採用的調度算法也不同。在作業系統中存在多種調度算法,其中有的調度算法適用於作業調度,有的調度算法適用於進程調度,有的調度算法兩者都適用。下面介紹幾種常用的調度算法:

FIFS先來先服務調度算法

特點:算法簡單,但是效率低;有利於長作業,不利於短作業;有利於CPU繁忙型作業而不利於IO繁忙型作業。

SJF短作業優先調度算法

短作業(進程)優先調度算法是指對短作業禍端進程優先調度的算法。短作業優先調度算法是從後備佇列中選擇一個或若干個估計運算時間最短的作業,將他們呢掉入記憶體運行。
SJF調度算法的缺點:
1) 該算法對長作業不理。
2) 該算法完全未考慮作業的緊迫程度
3) 由於作業的長短只根據用戶所提供的估計執行時間而定的,而用戶又可能會有意或無意的縮短其作業的估計運行時間,致使該算法不一定能真正做到算作業優先調度。
4) 注意:SJF調度算法的平均等待時間、平均周轉時間最少。

高回響比優先調度算法

高回響比優先調度算法主要用於作業調度。同時考慮從每個作業的等待時間和估計需要運行的時間。

時間片輪轉調度算法

時間片輪轉調度算法主要適用於分時系統。

多級反饋佇列調度算法

多級反饋佇列調度算法主要是時間片輪轉調度算法和優先權調度算法的綜合和發展。通過動態調整進程優先權和時間片大小,多級反饋佇列調度算法可以兼顧多方面的系統目標。

上下文切換機制

當對處理機進行切換時,會發生兩對上下文切換操作。在第一對上下文切換時,作業系統將保存當前進程的上下文,而裝入分派程式的上下文,以便分派程式運行;在第二對上下文切換時,將移出分派程式,而把新選進程的 CPU 現場信息裝入到處理機的各個相應暫存器中。
應當指出,上下文切換將花去不少的處理機時間,即使是現代計算機,每一次上下文切換大約需要花費幾毫秒的時間,該時間大約可執行上千條指令。為此,現在已有通過硬體(採用兩組或多組暫存器)的方法來減少上下文切換的時間。 一組暫存器供處理機在系統態時使用,另一組暫存器供應用程式使用。在這種條件下的上下文切換隻需改變指針,使其指向當前暫存器組即可。

相關詞條

熱門詞條

聯絡我們