多級佇列排程和多級反饋佇列的排程

2021-07-15 19:18:41 字數 1574 閱讀 2063

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。

多級(假設為n級)反饋佇列排程演算法可以如下原理

1、設有n個佇列(q1,q2….qn),其中各個佇列對於處理機的優先順序是不一樣的,也就是說位於各個佇列中的作業(程序)的優先順序也是不一樣的。一般來說,優先順序priority(q1) > priority(q2) > … > priority(qn)。怎麼講,位於q1中的任何乙個作業(程序)都要比q2中的任何乙個作業(程序)相對於cpu的優先順序要高(也就是說,q1中的作業一定要比q2中的作業先被處理機排程),依次類推其它的佇列。

2、對於某個特定的佇列來說,裡面是遵循時間片輪轉法。也就是說,位於佇列q2中有n個作業,它們的執行時間是通過q2這個佇列所設定的時間片來確定的(為了便於理解,我們也可以認為特定佇列中的作業的優先順序是按照fcfs來排程的)。

3、各個佇列的時間片是一樣的嗎?不一樣,這就是該演算法設計的精妙之處。各個佇列的時間片是隨著優先順序的增加而減少的,也就是說,優先順序越高的佇列中它的時間片就越短。同時,為了便於那些超大作業的完成,最後乙個佇列qn(優先順序最低的佇列)的時間片一般很大(不需要考慮這個問題)。

多級反饋佇列排程演算法描述

1、程序在進入待排程的佇列等待時,首先進入優先順序最高的q1等待。

2、首先排程優先順序高的佇列中的程序。若高優先順序中佇列中已沒有排程的程序,則排程次優先順序佇列中的程序。例如:q1,q2,q3三個佇列,只有在q1中沒有程序等待時才去排程q2,同理,只有q1,q2都為空時才會去排程q3。

3、對於同乙個佇列中的各個程序,按照時間片輪轉法排程。比如q1佇列的時間片為n,那麼q1中的作業在經歷了n個時間片後若還沒有完成,則進入q2佇列等待,若q2的時間片用完後作業還不能完成,一直進入下一級佇列,直至完成。

4、在低優先順序的佇列中的程序在執行時,又有新到達的作業,那麼在執行完這個時間片後,cpu馬上分配給新到達的作業(搶占式)。

我們來看一下該演算法是如何運作的

假設系統中有3個反饋佇列q1,q2,q3,時間片分別為2,4,8。

現在有3個作業j1,j2,j3分別在時間 0 ,1,3時刻到達。而它們所需要的cpu時間分別是3,2,1個時間片。

1、時刻0 j1到達。於是進入到佇列1 , 執行1個時間片 , 時間片還未到,此時j2到達。

2、時刻1 j2到達。 由於時間片仍然由j1掌控,於是等待。 j1在執行了1個時間片後,已經完成了在q1中的

2個時間片的限制,於是j1置於q2等待被排程。現在處理機分配給j2。

3、時刻2 j1進入q2等待排程,j2獲得cpu開始執行。

4、時刻3 j3到達,由於j2的時間片未到,故j3在q1等待排程,j1也在q2等待排程。

5、時刻4 j2處理完成,由於j3,j1都在等待排程,但是j3所在的佇列比j1所在的佇列的優先順序要高,於是j3被排程,j1繼續在q2等待。

6、時刻5 j3經過1個時間片,完成。

7、時刻6 由於q1已經空閒,於是開始排程q2中的作業,則j1得到處理器開始執行。 j1再經過乙個時間片,完成了任務。於是整個排程過程結束。

從上面的例子看,在多級反饋佇列中,後進的作業不一定慢完成。

多級反饋佇列排程演算法

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...

多級反饋佇列排程演算法

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...

多級佇列排程演算法視覺化介面 多級反饋佇列排程演算法

多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...