RT Thread 執行緒時間片輪轉

2021-09-16 12:30:36 字數 1041 閱讀 1470

建立兩個執行緒,堆和優先順序相同,執行緒1 時間片為10 、執行緒2時間片為5。

注意: 時間片輪轉機制,在 os tick 到來時,正在執行的執行緒時間片減 1

建立執行緒 thread1 和 thread2,優先順序相同為 20, thread1 時間片為 10, thread2

時間片為 5;

(2)啟動執行緒 thread1 和 thread2,使 thread1 和 thread2 處於就緒狀態;

(3)在作業系統的排程下, thread1 首先被投入執行;

(4) thread1 迴圈列印帶有累計計數的資訊,當 thread1 執行到第 10 個時間片時,作業系統排程

thread2 投入執行, thread1 進入就緒狀態;

(5) thread2 開始執行後,迴圈列印帶有累計計數的資訊,直到第 15 個 os tick 到來, thread2 已經

執行了 5 個時間片,作業系統排程 thread1 投入執行, thread2 進入就緒狀態;

(6) thread1 執行直到計數值 count>200,執行緒 thread1 退出,接著排程 thread2 執行直到計數值

count>200, thread2 執行緒退出;之後操作統排程空閒執行緒投入執行

/* 執行緒入口 */

static void thread_entry(void* parameter)

count++;

} }int timeslice_sample(void)

/* 匯出到 msh 命令列表中 */

msh_cmd_export(timeslice_sample, timeslice sample);

時間片輪轉

時間片輪轉排程演算法,這種演算法是將程序控制塊按照進入就緒佇列的先後次序排成佇列。關於就緒佇列的操作就是從隊頭摘下乙個程序控制塊和從隊尾掛入乙個程序控制塊。單處理器系統中程序控制塊分成乙個正在執行程序的程序控制塊 就緒程序的程序控制塊組織成的就緒佇列和等待程序的程序控制塊組成的等待佇列。由於實驗模擬...

時間片輪轉法

時間片輪轉法 round robin,rr 主要用於分時系統中的程序排程。為了實現輪轉排程,系統把所有就緒程序按先入先出的原則排成乙個佇列。新來的程序加到就緒佇列末尾。每當執行程序排程時,程序排程程式總是選出就緒佇列的隊首程序,讓它在 cpu上執行乙個時間片的時間。時間片是乙個小的時間單位,通常為 ...

時間片輪轉演算法

include include include include include include includeusing namespace std 初始化程序池 初始化就緒佇列 rr演算法 struct pcb pcb string name,int atime,int rtime,char st...