作業系統老師讓我們,用最簡單的C語言知識,實現作業系統中多級反饋佇列排程演算法,大俠們幫幫忙吧,謝謝了

2021-03-27 19:16:43 字數 2050 閱讀 4063

1樓:苦大師

多級反饋佇列排程演算法 多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。 多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業(程序)迅速完成。(對比一下fcfs與高優先響應比排程演算法的缺陷)。

多級(假設為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得到處理器開始執行。

8、時刻7 j1再經過一個時間片,完成了任務。於是整個排程過程結束。

2樓:匿名使用者

排程演算法的實施過程如下所述:(1)應設定多個就緒佇列,併為各個佇列賦予不同的優先順序。(2)當一個新程序進入記憶體後,首先將它放入第一佇列的末尾,按fcfs的原則排隊等待排程。

當輪到該程序執行時,如他能在該時間片內完成,便可準備撤離系統;如果它在一個時間片結束時尚未完成,排程程式便將該程序轉入第二佇列的末尾,再同樣地按fcfs原則等待排程執行;如果它在第二佇列中執行一個時間片後仍未完成,再依次將它放入第三佇列……,如此下去,當一個長作業程序從第一佇列依次降到第n佇列後,在第n佇列中便採取時間片輪轉的方式執行。(3)僅當第一佇列空閒時,排程程式才排程第二佇列中的程序執行。(還要用到資料結構中佇列的知識,鄙人後悔當初沒好好學習呀,想要多少追加分都行,謝謝各位了!)

3樓:匿名使用者

別人說用c實現,你們都答非所問。在把題目讀一遍吧!

作業系統和網路作業系統有什麼不同,我們的電腦是不是隻要裝了作業系統後,網路作業系統可以裝也可以不裝

兩者的不同,在於它們提供的服務有差異,網路作業系統 nos 偏重於將與網路活動相關的特性 加以優化,即經過網路來管理諸如共享資料檔案等,軟體應用褐外部裝置之類的資源,而os則偏重於優化使用者與系統的介面以及在其上面執行的應用。作業系統是基於bios之上的,用於執行應用軟體的一套軟體,它把硬體的功能調...

怎樣做的簡單作業系統,怎樣做一個的簡單作業系統?

開機時,按下del鍵,進入bios設定,游標控制到第二項,回車,裡面有first second。什麼的選first項回車,然後選cd rom 按f10儲存並退出,放入光碟重新啟動,就等這滑鼠點點就好了 做作業系統沒多少意義 除非能完勝微軟,勝過linux也好。好吧.初學者不適合這個事.如何製作一個完...

華為手機用的是什麼系統,華為手機的作業系統是什麼?

華為手機用的是emui系統。emotion ui是華為基於android進行開發的情感化作業系統。擁有簡化的使用者介面 新的手勢導航和hivision的 ai 功能,採用了自然極簡的設計。早期理念 emotion ui 從心開始,由感而生。emotion ui正是源自這種理念,由感而創。emotio...