模拟实现非抢占式

将进程信息表的信息根据进入时间排序,判断当前时间线下有哪些进程到达,将其插入到等待队列中,等待分配一个时间片,若进程未全部执行结束,将其插入队尾,等待下次分配。
在进行插入队尾前判断当前时间下哪些进程到达,将其依次插入到队尾中

单步执行进程

//单步执行进程
void TmpOfPrccess(Process& process, int n)
{//如果服务时间等于剩余服务时间,则证明该进程第一次被调度if (process._ServiceTime == process._RemainSeviceTime){//设定开始时间process._BeginTime = process._LineTime;}//如果剩余服务时间大于等于一个时间片的时间if (process._RemainSeviceTime >= n){//剩余时间减少一个时间片的时间process._RemainSeviceTime -= n;//时间线向后移动一个时间片process._LineTime += n;}else  //如果剩余时间小于一个时间时间片的时间{//时间线向后移动一个该进程的剩余时间process._LineTime += process._RemainSeviceTime;process._RemainSeviceTime = 0;  //将剩余时间置为0}if (process._RemainSeviceTime == 0)  //如果剩余时间为0,则证明该进程结束调度{process._FinishTime = process._LineTime;  // 设定结束时间,计算周转时间,带权周转时间process._rTime = process._FinishTime - process._EnterTime;process._PowerTime = (double)process._rTime / process._ServiceTime;}
}

时间片轮转调度算法

//时间片轮转
void RR(vector<Process> process)
{if (process.size() == 0)return;vector<Process> Print;queue<Process> Queue;  //缓冲队EnterTimeSort(process);int q = 0;  //时间片长度,以分钟为单位cout << "请输入时间片的长度:";cin >> q;process[0]._LineTime = process[0]._EnterTime;process[0]._BeginTime = process[0]._LineTime;Queue.push(process[0]);process.erase(process.begin());while (Queue.size() != 0){//将队头的进程执行一个时间片cout<<Queue.front()._name;TmpOfPrccess(Queue.front(), q);//查看进程信息中有哪些进程到达,如果到达则存入队中等待执行if (process.size() != 0){auto begin = process.begin();while (begin != process.end()){if (begin->_EnterTime <= begin->_LineTime){Queue.push(*begin);begin = process.erase(process.begin());}else{begin++;}}}//判断对头元素是否已经执行结束Process tmp = Queue.front();Queue.pop();  //出队if (tmp._RemainSeviceTime != 0){Queue.push(tmp);}else{Print.push_back(tmp);  //保存到信息表中}//当调度池中没有进程时,且时间线的时间不足以使下一个进程进入到调度池中,修改时间线if (process.size() != 0 && Queue.size() == 0 && process[0]._LineTime <= process[0]._EnterTime){process[0]._LineTime = process[0]._EnterTime;}}cout << endl;OutPut(Print);
}

操作系统|时间片轮转调度算法(RR)相关推荐

  1. 操作系统--时间片轮转调度算法(RR算法)

    操作系统–时间片轮转调度算法(RR算法) 实验内容: 模拟实现时间片轮转调度算法,具体如下: 设置进程体:进程名,进程的到达时间,服务时间,,进程状态(W--等待,R--运行,F--完成),进程间的链 ...

  2. 操作系统时间片轮转调度算法 进程 到达时间 服务时间 p1 p2 p3 p4

    时间片轮转调度算法详细判断流程: 例题: 进程 到达时间 服务时间 P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 时间片为1 先放出来最终的结果 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ...

  3. 操作系统——时间片轮转调度算法(RR)

    RR算法总体思路流程图 主要数据结构及参数 typedef struct PCB {char name;//进程名int arrive_time;//到达时间float cpu_burst;//服务时 ...

  4. 操作系统-时间片轮转调度算法

    基本概念 时间片轮转法(Round-Robin,RR)主要用于分时系统中的进程调度.为了实现轮转调度,系统把所有就绪进程按先入先出的原则排成一个队列.新来的进程加到就绪队列末尾.每当执行进程调度时,进 ...

  5. 操作系统 时间片轮转调度算法

    转自https://blog.csdn.net/u013630349/article/details/47732731 时间片轮转法(RR) 算法描述:用于分时系统中的进程调度.每次调度时,总是选择就 ...

  6. 操作系统实验二——时间片轮转调度算法(RR算法)(新进程放队首和队尾两种C++实现)

    情况介绍 基本原理 系统将所有就绪进程按照FCFS的原则,排成一个队列依次调度. 把CPU分配给队首进程,执行一个时间片(10-100ms). 时间片用完后,系统计时器发出时钟中断,该进程将被剥夺CP ...

  7. 【操作系统】调度算法(FCFS、SJF、HRRN、RR、优先级调度、多级反馈队列)

    目录 1. 批处理.分时.实时系统 1. 批处理系统 2. 分时系统 3. 实时系统 2. 处理机调度级别 2.1 高级调度(作业调度) 2.2 中级调度 2.3 低级调度(进程调度) 3. 调度算法 ...

  8. 时间片轮转(RR)、优先级调度算法以及多级反馈队列调度算法

    一.调度算法 (一)时间片轮转(RR, Round-Robin) 例题:各进程到达就绪队列的时间.需要的运行时间如下表所示.使用时间片轮转调度算法,分析时间片大小分别是2.5时的进程运行情况. 常用于 ...

  9. 《操作系统》一个优美的时间片轮转调度算法模拟Python实现

    节选自本人博客:https://www.blog.zeeland.cn/archives/time-slice-rotation-scheduling-algorithm Introduction 先 ...

最新文章

  1. Python List append()方法
  2. js---BOW---页面打开方式,跳转方式 2017-03-24
  3. unix查找的字符串包含特殊字符_python3从零学习-5.4.7、Unix风格路径名模式扩展glob...
  4. 在网页中使用react
  5. 图论--最短路--SPFA
  6. missing legacy device support
  7. 文献读的越多,离原创越远
  8. 2003正在锁定计算机,WIN2003 自动锁定怎么解决?
  9. 作者:张国惠(1978-),男,美国新墨西哥大学土木工程系助理教授、博士生导师。...
  10. 深入浅出理解死锁(以吃鸡游戏为例)
  11. Visual Studio 2012安装VASSISTX插件后导致CPU高的解决的方法
  12. 《Asp.Net 2.0 揭秘记(十四)
  13. Atitit ide之道 开发工具之道 attilax著 v2 s22.docx Atitit ide开发工具之道 attilax总结 1. 代码编辑器功能 3 1.1. 关键词颜色 3 1.2.
  14. python群控模拟安卓系统_安卓群控系统模拟器
  15. 希捷硬盘维修工具 v5.10.6 绿色免费版
  16. Win10正式版激活方法有哪些?如何激活Win10?
  17. 易基因|典型案例:MeRIP-seq综合分析肺腺癌中的转录组m6A甲基化组
  18. 一些简单的css,html,js笔记分享给大家,希望能够帮助到大家
  19. 社群运营的用户画像分析有哪些方法?
  20. python入门教材 52pj_PJzhang:python基础入门的7个疗程-five

热门文章

  1. 电子商务系统的建设方式及技术选择
  2. 提供凭证不足 无法访问这台计算机,提供的凭证不足无法访问这台打印机
  3. OOSE-人际关系管理系统设计开发
  4. FreeRtos软件定时器复习
  5. 【案例4-2】饲养员喂养动物
  6. 第十五期】Monica:单身滴美女程序员 多图!
  7. 国网通信之数据通信网
  8. 关于nbsp的一点笔记
  9. 互联网老兵:第一代程序员简晶 最老站长华军
  10. pubmed文献批量化下载器