1. 程式人生 > >第一章 1.4作業系統作業排程和程序排程

第一章 1.4作業系統作業排程和程序排程

1.作業系統兩級排程

前言

包括長期排程和短期排程。長期排程是作業排程,以小時為單位,短期排程是程序排程,以毫秒為單位。現代作業系統不產生長期不被排程和經常被排程的程序。程序排程是作業系統對程序就緒佇列的排程。高效能運算機中的任務排程是任務怎樣劃分,哪一個任務安排到哪一個處理機上執行。它們是不同的概念。 應注意的是程序排程與程式按順序執行沒有關聯,所以程序排程看似無序,實際上每個程式都在按語句順序執行,而且程序排程的效率和公平原則也始終起作用。
程序排程產生的原因是多程序或多執行緒競爭CPU。在就緒佇列中,根據排程演算法完成選擇最佳程序工作的程式稱為排程程式(scheduler)。適合程序排程的方法也適合執行緒排程。現在計算機速度很快,遠超過從前的計算機,因此排程程式在PC機上並不重要。但是轉向網路伺服器,多個客戶機請求程序經常競爭CPU,因此作業系統的排程功能再次變得至關重要。在這一節我們主要學習FIFO,短作業優先,優先順序排程,分時系統輪轉法,多級佇列等排程演算法。

1.4.1作業系統程序排程和作業排程的基本概念 

一、週轉時間Turnaround Time

對一個程式而言,從提交開始到完成為止的這段時間間隔稱為週轉時間。週轉時間是批處理系統中衡量排程效能的一個重要指標。對批處理系統中的一個作業而言,它包括:(1)作業在外存後備佇列上等待進入記憶體的時間,外存包括磁碟;(2)在就緒佇列上等待獲得處理機的時間,或者在PC機上是等待CPU的時間,可能多次等待;(3)在CPU上的執行時間;(4)等待I/O操作完成的時間。
對一個分時系統的程序而言,它的週轉時間是從第一次進入就緒佇列開始,到程序執行完畢所經歷的時間,期間可能多次被排程。然而通常情況是程序在一次排程中執行完畢。
週轉時間的計算公式見下。
1.平均週轉時間
如果作業i提交給系統的時刻是ts,完成時刻是tf,則該作業的週轉時間ti為:
ti = tf - ts
實際上,它是作業在系統裡的等待時間與執行時間之和。
為了提高系統的效能,要讓若干個使用者(n個)的平均作業週轉時間最小。平均作業週轉時間 :
T = (Σti) / n
    2.平均帶權週轉時間
如果作業i的週轉時間為ti,所需執行時間為tk,則該作業的帶權週轉時間
wi=ti /tk=1+( ti - tk)/tk
ti是等待時間與執行時間之和,可稱為作業響應時間,( ti - tk)是等待時間,所以帶權週轉時間總大於1。帶權週轉時間又稱為響應比,在最高響應比優先演算法中介紹。
平均作業帶權週轉時間
W = (Σwi) / n    

二、響應時間Response Time

分時系統衡量排程效能的一個重要指標。所謂響應時間,是指從提交一個請求開始到首次產生相應為止(顯示出結果)的一段時間間隔。提交請求包括:使用者輸入命令,執行程式。響應時間包括:(1)把請求訊號從鍵盤傳輸到計算機的時間;(2)計算機對請求進行處理的時間;(3)再將響應送回終端的時間。
響應時間應注意均衡性,發傳真和簡單請求的響應時間不同,因此使用者的接受程度不同。作業系統應及時響應使用者的簡單請求,而對發傳真等複雜請求可用較多時間響應。
響應時間是網路系統軟體要求較高的一個指標,例如:商業銀行城市綜合業務網路系統中,銀行網點的客戶機要求在規定的時間內辦理一筆銀行業務,例如:5秒鐘,否則客戶久等將造成對銀行信譽的不良影響。響應時間在網路報文中用超時表示,超時則規定重發。因此超時必須避免,否則造成網路傳輸效率過低的現象,喪失客戶參與,則沒有經濟效益。    

三、剝奪方式Preemptive Mode


    當一個程序正在執行時,作業系統根據某種規定,在時鐘中斷髮生時或者有程序的優先順序更高時,將執行程序獲得的處理機,分配給新的最佳程序。所根據的規定有:(1)優先順序演算法。優先順序高的程序比優先順序低的執行程序更有資格分配處理機而執行;(2)短程序優先。短程序到達後比在執行的長程序更有效率而獲得處理機;(3)時間片到。分時系統的一個時間片用完後,程序排程程式重新排程。    

四、吞吐量Throughout


    作業系統每小時完成的作業數量。把所有因素都考慮進去以後,吞吐量是50的作業系統優於值為40的作業系統。作業系統吞吐量大,但是平均週轉時間不一定最小。例如:有許多短作業和長作業的一個作業組,若總是先執行短作業而不執行長作業,則吞吐量出色。但是長作業的週轉時間將很差,因此平均週轉時間也許很長,這並不是一個好的選擇。    

五、CPU利用率


批處理系統的一個度量標準。但是並不是一個好的度量引數。吞吐量是作業系統每個小時可完成多少作業,週轉時間是完成作業需要多少時間,這兩個效能指標更有價值。
CPU利用率=CPU有效工作時間/CPU總的執行時間,
CPU總的執行時間=CPU有效工作時間+CPU空閒等待時間。
現在的多核系統CPU利用率不足,原因是執行緒數量少。可應用作業系統的解決方法,例如:區分程序性質是CPU忙還是I/O忙等等。    

六、作業和程序


作業是作業系統的任務實體,程序是完成任務的執行實體;沒有作業任務,程序無事可幹,沒有程序,作業任務沒法完成。批處理作業系統應用作業概念,大量作業在後援儲存器中等待到記憶體,再以建立程序的方式執行,作業系統管理作業的執行過程而使用者不能干涉;多道程式設計建立程序概念,包括分時,實時,互動等系統中採用程序為基本單位,使用者能用命令等方式管理程序。
作業由“作業註冊”程式負責為作業建立作業控制塊JCB,稱為作業進入系統,儲存在後援儲存器上,並把它加入後備作業佇列中,等候作業排程程序排程。而作業被作業排程程式選中,分配記憶體等必要資源後,才建立一組相應程序,稱為作業進入了執行狀態。當作業正常完成後,“終止作業”程式收回JBC和資源。

1.4.2 排程演算法


程序排程演算法服務作業系統的功能目標。作業排程演算法和程序排程演算法考慮的階段和情況都不同,然而有些演算法類似,因此放到一起。    

一、先進先出FIFO演算法

按照程序到達就緒佇列的時間順序分配CPU。排程時根據佇列的特徵,選就緒佇列隊第一個程序投入執行。FIFO排程演算法是非剝奪的,只有程序執行到不能執行下去而阻塞或者完成,才釋還處理機。
在批處理系統,作業的先來先服務排程演算法FCFS的平均作業週轉時間與作業提交的順序有關。
例題1:三個作業同時到達系統並立即進入排程。
作業名/所需CPU時間:作業1/28,作業2/9,作業3/3。FCFS演算法的平均作業週轉時間為:
T=(28+(9+28)+(3+(28+9)))/3=35。
第一個作業最先執行,第2個作業的等待時間是28,執行時間是9,第三個作業也如此。注意不能忽略等待時間。
應知道作業等待時間是等待從外存調入記憶體的時間,而不是等待在CPU上執行的時間。這是作業排程和程序排程的不同,作業排程選擇作業排程到記憶體,程序排程在記憶體中選擇CPU上執行的程序。
例題2:有三個程序P1,P2和P3,它們先後(但幾乎同時)進入就緒佇列。CPU執行期分別是21,6和3個時間單位。按FIFO排程演算法,平均週轉時間為:
T=(21+27+30)/3=26。
FCFS排程演算法對短作業不利,例如作業3,但是易於實現,表面公平,卻服務質量不佳。作業3等了很久,三個作業可視為同時達到,因此先執行作業3能提高程序排程效率。         

二、短作業優先

SJF排程演算法屬於作業排程演算法,將作業從外存後備佇列調入到記憶體,以進入系統的作業所要求的CPU時間為衡量標準,每次選取預計CPU時間最短的作業投入執行。主要弱點是可能出現長作業久等過期,和估計CPU時間沒有考慮等待CPU時間。
例題3:四個作業同時到達系統並進入排程。作業名/所需CPU時間:作業1/9,作業2/4,作業3/10,作業4/8。
因此根據所需CPU時間,SJF作業排程順序為作業2、4、1、3,則:(1)平均作業週轉時間T =(4+12+21+31)/4= 17,
(2)平均帶權作業週轉時間W= (1+1+4/8+1+12/9+1+21/10)/4=1.98。
若採用FCFS排程演算法,則:
(1)平均作業週轉時間T =(9+13+23+31)/4=19,
(2)平均帶權作業週轉時間W = 2.51。
SJF的平均帶權作業週轉時間比FCFS要小而且吞吐量更高,因此效率更高;SJF平均作業週轉時間表示的整體效能比FCFS略有優勢,所以更公平。然而對長作業,例如作業3,卻存在讓權等待現象,似乎有欠考慮。
應注意的是,SJF排程演算法要求每一個排程階段包括的多個程序應該在同一時期內到達。
例題4:程序的最短CPU執行期優先排程演算法SCBF,在就緒佇列中有四個程序P1,P2,P3和P4,它們的下一個執行期分別是16,12,4和3個單位時間。在SCBF演算法進行排程時,程序排程順序是P4,P3,P2和P1,平均週轉時間是16個單位時間。但是若用FIFO演算法排程,平均週轉時間近似為28。從效率上看,在4個程序中下一個最佳選擇是P4,所有其它程序等待時間最少,因此SCBF效率優於FIFO;然而SCBF對要求執行時間長的程序P1,儘管最先到達卻最後一個排程。但是整體公平度,不能僅僅看等待在CPU上執行的時間,還要看是否某一類程序長時間不被選擇排程。
在此基礎上,計算機作業系統界的研究人員推出了最高響應比優先排程演算法。    

三、最高響應比優先演算法HRRF.

HRRF是介乎FIFO和SJB之間的調和演算法,是作業排程的一種。既考慮作業在後備佇列的等待時間,又考慮它們的執行時間;既考慮短作業的排程效率,又照顧長作業的等待時間不能過長。在效能上,對多個程序整體的排程得到了完善提高。
作業進入系統後的等待時間與估計執行時間之比稱為響應比,有定義:
響應比 =1+已等待時間/估計執行時間
公式有兩項,第二項的(估計)執行時間使短作業容易得到較高響應比,而已等待時間讓長作業在等待時間足夠長後,也能獲得足夠高的響應比。響應比實際是帶權週轉時間。
前面的例題都是作業或者程序同時到達,從例題5開始,一組作業或程序的到達不再要求同時。
例題5.四個作業的作業號-到達系統時間/所需CPU時間:作業1-0/20,作業2-5/15,作業3-10 /5,作業4- 15/ 10。
1* FCFS排程演算法
排程順序為作業1、2、3、4。平均作業週轉時間和平均帶權週轉時間的表格方法見下,在熟練掌握後可不再使用表格,提高思考能力。
表1-2-1  FCFS排程演算法(在不同時間到達的條件下)
作業 到達時間 執行時間 開始時間 完成時間 等待時間 週轉時間
1 (1) 0 20 0 20 0 20
2 (2) 5 15 20 35 15 30
3 (3) 10 5 35 40 25 30(短作業)
4 (4) 15 10 40 50 25 35(短作業)
平均週轉時間 T=(20+30+30+35)/4=28.75
平均帶權週轉時間 W=(1+1+1+1+5+1+2.5)/4=3.125
2* SJF排程演算法
當第一個作業到達時,沒有其它作業到達,因此先執行。在執行結束後,作業2,3,4都到達了,SJF排程順序為作業1、3、4、2。
表1-2-2  SJB排程演算法(在不同時間到達的條件下)
作業 到達時間 執行時間 開始時間 完成時間 等待時間 週轉時間
1 (1) 0 20 0 20 0 20
2 (4) 5 15 35 50 30 45(長作業)
3 (2) 10 5 20 25 10 15
4 (3) 15 10 25 35 10 20
平均週轉時間 T=(20+15+20+45)/4=25
平均帶權週轉時間 W=(1+1+2+1+1+1+2)/4=2.25
3* HRRF排程
排程順序為作業1、3、4、2,平均作業週轉時間T=26.25, 平均帶權作業週轉時間W=2.46。
表1-2-2  HRRF排程演算法(在不同時間到達的條件下)
作業 到達時刻 執行時間 開始 完成 等待時刻 週轉時間 響應比
1(1) 0  20 0 20 0 20 1
2(3)  5  15 25 40 20 35 1+4/3
3(2)  10  5 20 25 10 15 1+2
4(4) 15 10 40 50 25 35 1+2.5
平均週轉時間            T=(20+35+15+35)/4=26.25
平均帶權週轉時間         W=(1+1+4/3+3+3.5)/4=2.46
三個演算法比較可知,平均帶權週轉時間FIFO最長,HRRF次之,而SJF最低;帶權週轉時間也是如此。因此總體效能FIFO最低,完成一組程序的排程所需時間最長,而SJF效率最高;整體公平性HRRF最周到。
作業排程從此後結束。程序排程考慮的指標不再是週轉時間,而是平均等待時間,即所有程序等待處理機執行的時間總和。

相關推薦

第一 1.4作業系統作業排程程序排程

1.作業系統兩級排程 前言 包括長期排程和短期排程。長期排程是作業排程,以小時為單位,短期排程是程序排程,以毫秒為單位。現代作業系統不產生長期不被排程和經常被排程的程序。程序排程是作業系統對程序就緒佇列的排程。高效能運算機中的任務排程是任務怎樣劃分,哪一個任務安排到哪一個處

Oracle入門《Oracle介紹》第一1-4 Oracle 用戶管理

帳戶 臨時表 grant 登錄權限 dba font lock tables 操作系統 1.Oracle 默認用戶  只有用合法的用戶帳號才能訪問Oracle數據庫  Oracle 有幾個默認的數據庫用戶     數據庫中所有數據字典表和視圖都存儲在 SYS 模式中。SY

作業系統作業排程程序排程演算法

最高響應比優先法(HRRN,Highest Response Ratio Next)  最高響應比優先法(HRRN,Highest Response Ratio Next)是對FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個作業的等待時間而未考慮執行時間的長短,而SJF方式只考慮執行時間而未考慮

一頓飯讓你學會作業排程程序排程

場景:畢業師兄請我們去鳳雛吃飯。 流程:菜由後廚做好,然後由服務員端上飯桌,接著我們吃飯。 服務員排程演算法:後廚的菜做好,由服務員選擇端哪個菜上桌,這個服務員是兼洗碗的,她今天晚上還有個約會,所以她希望儘早地把碗刷完去約會,所以她的排程演算法是,看哪個菜比較快吃掉,就先上

第一1.1-1.2-1.3—振幅幅度區別

以下內容引自《數字訊號處理【美】,richard. Glyons》 1.1--------------------------------- 不要試圖將離散時間序列的點用線連器來。因為某些原因(尤其是那些對於出來連續訊號很有經驗的攻城獅),享用直線或者階梯線將點連起來。這樣看起來似乎沒有什麼

作業系統:先來先服務FCFS作業優先SJF程序排程演算法

目的:陸續整理近一年的學習收穫                                先來先服務FCFS和短作

作業系統 】先來先服務FCFS作業優先SJF程序排程演算法

  1.先來先服務FCFS和短作業優先SJF程序排程演算法 2.時間片輪轉RR程序排程演算法 3.預防程序死鎖的銀行家演算法 4.動態分割槽分配演算法 5.虛擬記憶體頁面置換演算法 6.磁碟排程演算法 void FCFS() { /* 1. 找

作業系統》 先來先服務FCFS作業優先SJF程序排程演算法相關計算及實驗

  為了和FCFS排程演算法進行比較,我們仍利用FCFS演算法中所使用的例項,並改用SJ(P)F演算法重新排程,再進行效能分析。由上圖中的(a)和(b)可以看出,採用SJ(P)F演算法後,不論是平均週轉時間還是平均帶權週轉時間,都有較明顯的改善,尤其是對短作業D,其週轉時間由原來的(用FCFS演算法時)1

1】先來先服務FCFS作業優先SJF程序排程演算法

// 作業系統_實驗一.cpp : 定義控制檯應用程式的入口點。 // /* //實驗題目:先來先服務FCFS和短作業優先SJF程序排程演算法 *******概念******* 1. 先來先服務FCFS: 2. 短作業優先SJF: 3. 高階排程:根據某種演算法,在外存中把處於後備佇列中的那些作業調入記憶體,

第二1:文件操作函數

條件語句 info 文件操作 寫入 分享 查看文件內容 文本編輯器 inf 三目運算 三元運算符:又稱三目運算,就是對簡單的條件語句的簡寫 簡單條件語句:if.....else 轉換成三元運算:val 文件處理:怎麽查看文件內容 1,首頁我要有個文本編輯器 2

第一 1.3 實數算術運算

選擇 算術運算 鏈接 設置 任務 htm 程序 tps .com 這是第四次課,主要是學習編程第一章1.3 實數算術運算 學習任務: 1.請先閱讀第8頁至10頁的內容,若能明白可以不用觀看視頻; 看不懂請看視頻鏈接:第一章 1.3 學習視頻 2.若能明白請回答:

作業系統——第三筆記(三)(含程序排程題目)

實時排程 1.什麼是實時系統? ○1指系統能夠在限定的響應時間內提供所需水平的服務。 ○2指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。 實時任務:具有明確時間約束的計算任務,有軟/硬,隨機/週期性之分。 硬實時任務:必

Java程式設計思想 第四版(手碼原書+菜鳥筆記) 第一 1.12 併發程式設計

文中筆記均為個人觀點,如有錯誤請大家不吝指出,謝謝! 原書為《java程式設計思想 第四版 中文版》 在計算機程式設計中有一個基本概念,就是在同一時刻處理多個任務的思想。 許多程式設計問題都要求,程式能夠停下正在做的工作,轉而處理某個其

Topographic Laser Ranging and Scanning_Principles and Processing——第一 1.7

1.7 反射能量接收 發射能量除了在被散射之後有能量的耗損之外,在傳播的過程中還會被傳播介質當中的水以及塵埃等吸收能量。除此之外,在空氣中傳播還有可能受到閃爍效應的影響。這些都會減弱返回到測距系統的探測器的能量,而實際上返回到測距系統的能量也只佔了發射能量的一小部分。 如

AntDesign 第一(1) --------前端開發的演變

前端開發的演變 本文介紹前端開發的歷史和趨勢,幫助大家瞭解 React 要解決什麼問題。 靜態頁面階段 網際網路發展的早期,網站的前後端開發是一體的,即前端程式碼是後端程式碼的一部分。 後端收到瀏覽器的請求 生成靜態頁面 傳送到瀏覽器 那時的前端頁面都是靜態的,所

LTE總結1.使用者連線與上行排程下行排程

以下是我個人對LTE的理解: 首先,對於手機來說,支援我們上網的是流量,而這個網路就是所謂的4G網路。無論是聯通還是移動來說,都是LTE,只不過一個使用的FDD模式,一個使用TDD模式。那麼我們手機如何進行通訊的?這個框架弄清楚就可以大致瞭解LTE裡面的架構了。

四軸飛行器1.4 姿態解算Matlab實時姿態顯示

MPU6050資料讀取出來後,經過一個星期的努力,姿態解算和在matlab上的實時顯示姿態終於完成了。 1:完成matlab的串列埠,並且實時通過波形顯示資料 2:新增RTT檢視CPU使用率的擴充套件功能,MPU6050讀取資料的優化 3:四元素表示的座標變

開發藝術探索——第一:Activity的生命週期啟動模式

目錄 1.1 Activity 的生命週期和啟動模式 1.1.1 典型情況下的生命週期分析 1.1.2 異常情況下的生命寧週期分析 1.2 Activity 的啟動模式 1.2.1 Activity 的 LaunchMode 1.2.2 Activity 的Flags

python計算機視覺程式設計——第一(基本的影象操作處理)

第1章 基本的影象操作和處理 1.1 PIL:Python影象處理類庫 PIL(Python Imaging Library,影象處理庫)提供了通用的影象處理功能,以及大量有用的基本影象操作。PIL庫已經整合在Anaconda庫中,推薦使用An

作業系統中長期排程、中期排程短期排程之間的區別

在許多程序或執行緒都準備使用CPU進行任務處理時,就會存在資源競爭和分配的問題。一般都會將程序或執行緒先放在一個緩衝池中,等待合適的時機排程程式從中選擇一個程序或執行緒進行交給CPU進行處理。 如上圖所示,在排程中,分為長期、中期和短期三種。 長期排