1. 程式人生 > 其它 >程序排程演算法

程序排程演算法

首先要知道程序的幾個引數:

進入系統時間,執行時間,開始時間,完成時間,週轉時間,帶權週轉時間。

其中多個程序的平均週轉時間和平均帶權週轉時間是衡量演算法優劣的重要標準。(週轉時間就是程序進入系統時間到完成時間之差,帶權週轉時間就是週轉時間和執行時間之比)

一、先來先服務排程演算法

  這個演算法是按作業來到的先後次序進行排程的。這種演算法優先考慮在系統中等待時間最長的作業。而不管它要求執行時間的長短。容易實現,但效率低。

  這種演算法對短作業不利,因為短作業執行時間很短,若令它等待較長時間,則帶權週轉時間會很高。

 

二、短作業優先排程演算法

  比較磁碟中的作業申請所指出的計算時間,總是選取計算時間最短的作業作為下一次服務的物件。易於實現,效率較高。

  弱點就是隻照顧短作業的利益,而不考慮長作業的利益。如果系統不斷的接收新的作業,就有可能讓長作業長時間等待而不能執行。

 

三、響應比高者優先排程演算法

  前面兩種都比較片面,先來先服務演算法只考慮等待時間而忽視了執行時間,而短作業優先排程演算法則恰好相反,它只考慮了執行時間忽視了等待時間。

  將作業的的響應時間與執行時間的比值稱為響應比。即:響應比=響應時間/執行時間

  因此響應比可寫為:響應比=1+作業等待時間/執行時間

  每排程一個作業投入執行時,計算後備作業每個作業的響應比,然後挑選響應比最高者投入執行。優點是照顧了兩者。