時間片輪轉排程
是一種最古老,最簡單,最公平且使用最廣的演算法。每個程序被分配乙個時間段,稱作它的時間片,即該程序允許執行的時間。如果在時間片結束時程序還在執行,則cpu將被剝奪並分配給另乙個程序。如果程序在時間片結束前阻塞或結束,則cpu當即進行切換。
以下是c演算法的模擬實現:
#include#define max 10
struct task_struct
tasks[max];
int counter; /*實際程序個數*/
int time_counter=0;
int poutput(); /*排程結果輸出*/
int time();
int charge();//判斷是否所有的程序都被執行過
void main()
int time()
if(tasks[i].run_flag==0)//該程序還未結束
if(tasks[i].run_time/time_counter>1)//至少有兩倍的時間片未執行
else if(tasks[i].run_time-time_counter==0)
else//僅剩下不足一倍的時間片}}
}}int charge()//判斷是否全部程序都執行完畢
{ int k;
int super_flag=0;//判斷是否全部的程序都執行完畢
for(k=0; k
時間片輪轉排程演算法
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 來標識。程序控制塊內容包括 程序名,鏈結指標,到達時間,估計執行時間,程序狀態。程序名即程序標識。鏈結指標 按照程序到達系統的時間將處於就緒狀態的程序連線成乙個就緒佇列。指標指出下乙個到達程序的程序控制塊...