模拟时间片轮转算法(C++)

时间片轮转算法(RR)是一种公平的调度策略,采用剥夺策略,每个进程分配一定时间片轮流执行。当时间片用完,进程会被移到队列末尾。优点是响应时间短,但不适合紧急作业。时间片大小影响系统性能,需综合考虑响应时间需求、就绪队列进程数及系统处理能力。本文包含具体实现代码和输出示例。
摘要由CSDN通过智能技术生成

时间片轮转算法(RR,Round-Robin)
该算法采用剥夺策略。时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法,又称RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。
算法原理:让就绪进程以FCFS 的方式按时间片轮流使用CPU 的调度方式,即将系统中所有的就绪进程按照FCFS 原则,排成一个队列,每次调度时将CPU 分派给队首进程,让其执行一个时间片,时间片的长度从几个ms 到几百ms。在一个时间片结束时,发生时钟中断,调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程,进程可以未使用完一个时间片,就出让CPU(如阻塞)。
算法优点:时间片轮转调度算法的特点是简单易行、平均响应时间短。
算法缺点:不利于处理紧急作业。在时间片轮转算法中,时间片的大小对系统性能的影响很大,因此时间片的大小应选择恰当
怎样确定时间片的大小:

时间片大小的确定
1.系统对响应时间的要求
2.就绪队列中进程的数目
3.系统的处理能力

具体代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <vector>

using namespace std;

/************************************************************************/
/* 时间片轮转法(RR(Round Robin Method))                               */
/************************************************************************/
// 定义时间片的结构体
struct RR{
    // 进程名称
    char name[10];
    // 到达时间
    int daodatime;
    // 服务时间
    int fuwutime;
    // 剩余时间
    
  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值