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