作業系統 時間片輪轉排程演算法

2021-10-23 04:14:26 字數 1096 閱讀 5500

時間片輪轉法(round-robin,rr)主要用於分時系統中的程序排程。為了實現輪轉排程,系統把所有就緒程序按先入先出的原則排成乙個佇列。新來的程序加到就緒佇列末尾。每當執行程序排程時,程序排程程式總是選出就緒佇列的隊首程序,讓它在cpu上執行乙個時間片的時間。時間片是乙個小的時間單位,通常為10~100ms數量級。當程序用完分給它的時間片後,系統的計時器發出時鐘中斷,排程程式便停止該程序的執行,把它放入就緒佇列的末尾;然後,把cpu分給就緒佇列的隊首程序,同樣也讓它執行乙個時間片,如此往復。

完成** 程序

到達時間

服務時間

完成時間

周轉時間

帶權周轉時間a0

3b26

c44d

65e8

2解析:

程序處理的流程(p=1) :

0.a	  cpu服務a		

1.a cpu服務a

2.ba 當a執行完畢後被被放入佇列的末尾,佇列變成ba,cpu服務b

3.ab b執行完畢被放入末尾,佇列變成ab,cpu服務a

4.bc a經過三次服務,處理完成。程序c進入佇列並放在隊尾,cpu服務b

5.cb b執行完畢被放入末尾,佇列變成cb,cpu服務c

6.bdc d進入佇列放入隊尾即b的後面,當c執行完畢後被放入末尾,佇列變成bdc,cpu服務b

7.dcb 接下來的服務以此類推

8.cbed

9.bedc

10.edcb

11.dcbe

12.cbed

13.bedc

14.edcb

15.dcb

16.cbd

17.bd

18.d

19.d

注:周轉時間 = 完成時刻 - 進入系統時刻

帶權周轉時間 = 周轉時間 / 所需服務時間

程序到達時間

服務時間

完成時間

周轉時間

帶權周轉時間a0

3441.33b2

618162.67c4

417133.25d6

520142.80e8

21573.50

時間片輪轉排程演算法

include define max 10 struct task struct tasks max int counter 實際程序個數 int time counter 0 int poutput 排程結果輸出 int time int charge 判斷是否所有的程序都被執行過 int tim...

UCOSIII時間片輪轉排程

os rate hz const oscfg tickrate hz os rate hz os cfg tick rate hz define os cfg tick rate hz 200u tick rate in hertz 10 to 1000 hz 時間片長度200hz,也就是乙個系統時...

按時間片輪轉排程演算法(C 實現)

演算法思想 按時間片輪轉排程演算法 1 假設系統中有5個程序,每個程序有乙個程序控制塊 pcb 來標識。程序控制塊內容包括 程序名,鏈結指標,到達時間,估計執行時間,程序狀態。程序名即程序標識。鏈結指標 按照程序到達系統的時間將處於就緒狀態的程序連線成乙個就緒佇列。指標指出下乙個到達程序的程序控制塊...