調度操作

調度操作

調度在計算機中是分配工作所需資源的方法。資源可以指虛擬的計算資源,如執行緒、進程或數據流;也可以指硬體資源,如處理器、網路連線或擴展卡。調度操作是指作業系統從進程佇列或作業佇列中選擇一個進程或作業運行。

簡介

調度操作是指作業系統從就緒佇列中選擇一個作業或進程運行,在系統中,可能引發調度操作的時機有正在運行的進程運行完畢;運行中的進程要求I/O操作;執行某種原語操作(如P操作)導致進程阻塞;比正在運行的進程優先權更高的進程進入就緒佇列;分配給運行進程的時間片已經用完。

調度分類

在後備佇列上等待的每個作業都需經過調度才能執行。在傳統的作業系統中,包括作業調度和進程調度兩步。

(1) 作業調度。作業調度的基本任務是從後備佇列中按照一定的算法,選擇出若干個作業,為它們分配運行所需的資源(首先是分配記憶體)。在將它們調入記憶體後,便分別為它們建立進程,使它們都成為可能獲得處理機的就緒進程,並按照一定的算法將它們插入就緒佇列。

(2) 進程調度。 進程調度的任務是從進程的就緒佇列中, 按照一定的算法選出一個進程,把處理機分配給它,並為它設定運行現場,使進程投入執行。值得提出的是,在多執行緒 OS中,通常是把執行緒作為獨立運行和分配處理機的基本單位,為此,須把就緒執行緒排成一個佇列,每次調度時,是從就緒執行緒佇列中選出一個執行緒,把處理機分配給它。

調度操作的準則

面向用戶的準則

這是為了滿足用戶的需求所應遵循的一些準則。其中,比較重要的有以下幾點。

(1) 周轉時間短。通常把周轉時間的長短作為評價批處理系統的性能、選擇作業調度方式與算法的重要準則之一。所謂周轉時間,是指從作業被提交給系統開始,到作業完成為止的這段時間間隔(稱為作業周轉時間)。它包括四部分時間:作業在外存後備佇列上等待(作業)調度的時間,進程在就緒佇列上等待進程調度的時間,進程在 CPU 上執行的時間,以及進程等待 I/O 操作完成的時間。 其中的後三項在一個作業的整個處理過程中可能會發生多次。

對每個用戶而言,都希望自己作業的周轉時間最短。但作為計算機系統的管理者,則總是希望能使平均周轉時間最短,這不僅會有效地提高系統資源的利用率,而且還可使大多數用戶都感到滿意。

(1)回響時間快。常把回響時間的長短用來評價分時系統的性能,這是選擇分時系統中進程調度算法的重要準則之一。所謂回響時間,是從用戶通過鍵盤提交一個請求開始,直至系統首次產生回響為止的時間,或者說,直到螢幕上顯示出結果為止的一段時間間隔。它包括三部分時間:從鍵盤輸入的請求信息傳送到處理機的時間,處理機對請求信息進行處理的時間,以及將所形成的回響信息回送到終端顯示器的時間。

(3) 截止時間的保證。這是評價實時系統性能的重要指標,因而是選擇實時調度算法的重要準則。所謂截止時間,是指某任務必須開始執行的最遲時間,或必須完成的最遲時間。對於嚴格的實時系統,其調度方式和調度算法必須能保證這一點,否則將可能造成難以預料的後果。

(4) 優先權準則。 在批處理、 分時和實時系統中選擇調度算法時, 都可遵循優先權準則,以便讓某些緊急的作業能得到及時處理。在要求較嚴格的場合,往往還須選擇搶占式調度方式,才能保證緊急作業得到及時處理。

面向系統的準則

這是為了滿足系統要求而應遵循的一些準則。其中,較重要的有以下幾點:

(1) 系統吞吐量高。這是用於評價批處理系統性能的另一個重要指標,因而是選擇批處理作業調度的重要準則。由於吞吐量是指在單位時間內系統所完成的作業數,因而它與批處理作業的平均長度具有密切關係。對於大型作業,一般吞吐量約為每小時一道作業;對於中、小型作業,其吞吐量則可能達到數十道作業之多。作業調度的方式和算法對吞吐量的大小也將產生較大影響。事實上,對於同一批作業,若採用了較好的調度方式和算法,則可顯著地提高系統的吞吐量。

(2) 處理機利用率好。對於大、中型多用戶系統,由於 CPU 價格十分昂貴,致使處理機的利用率成為衡量系統性能的十分重要的指標;而調度方式和算法對處理機的利用率起著十分重要的作用。在實際系統中,CPU 的利用率一般在 40%(系統負荷較輕)到 90%之間。在大、中型系統中,在選擇調度方式和算法時,應考慮到這一準則。但對於單用戶微機或某些實時系統,則此準則就不那么重要了。

(3) 各類資源的平衡利用。在大、中型系統中,不僅要使處理機的利用率高,而且還應能有效地利用其它各類資源,如記憶體、外存和 I/O 設備等。選擇適當的調度方式和算法可以保持系統中各類資源都處於忙碌狀態。但對於微型機和某些實時系統而言,該準則並不重要。

三個基本機制

為了實現進程調度操作,應具有如下三個基本機制:

(1) 排隊器。為了提高進程調度的效率,應事先將系統中所有的就緒進程按照一定的方式排成一個或多個佇列,以便調度程式能最快地找到它。

(2) 分派器(分派程式)。分派器把由進程調度程式所選定的進程,從就緒佇列中取出該進程,然後進行上下文切換,將處理機分配給它。

(3) 上下文切換機制。當對處理機進行切換時,會發生兩對上下文切換操作。在第一對上下文切換時,作業系統將保存當前進程的上下文,而裝入分派程式的上下文,以便分派程式運行;在第二對上下文切換時,將移出分派程式,而把新選進程的 CPU 現場信息裝入到處理機的各個相應暫存器中。

相關詞條

熱門詞條

聯絡我們