RR算法是使用非常广泛的一种调度算法。
首先将所有就绪的队列按FCFS策略排成一个就绪队列,然后系统设置一定的时间片,每次给队首作业分配时间片。如果此作业运行结束,即使时间片没用完,立刻从队列中去除此作业,并给下一个作业分配新的时间片;如果作业时间片用完没有运行结束,则将此作业重新加入就绪队列尾部等待调度。
-
//main.cpp
-
-
-
int main()
-
{
-
std::vector<PCB> PCBList;
-
int timeslice;
-
-
//输入时间片大小,作业信息
-
InputPCB(PCBList, timeslice);
-
-
//RR算法
-
RR(PCBList, timeslice);
-
-
//显示结果
-
show(PCBList);
-
-
return 0;
-
}
-
-
//RR.h
-
-
-
-
-
-
-
-
-
-
//作业结构体
-
typedef struct PCB
-
{
-
int ID; //标识符
-
int ComeTime; //到达时间
-
int ServerTime; //服务时间
-
int FinishTime; //完成时间
-
int TurnoverTime; //周转时间
-
double WeightedTurnoverTime; //带权周转时间
-
}PCB;
-
-
/*
-
函数功能:输入作业信息