轮转调度算法(RR)

轮转调度算法(RR)是一种常见的进程调度策略,它将所有就绪进程放入队列,按照先来先服务(FCFS)原则排序。每个进程被分配一个固定的时间片,在时间片内执行。如果进程在时间片结束前完成,它会被移出队列;否则,进程会被送回队列末尾继续等待。这种算法确保了系统的响应速度和公平性。
摘要由CSDN通过智能技术生成

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;

/*
函数功能:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值