目录

一、要求

二 、实验原理

阐述多道作业从提交到执行流程说明三级调度的概念、之间的区别与关系;

阐述FCFS、SJF/SPF、HRRN、RR和多级反馈队列调度算法思想、特点及优缺点;

三、实验思想

时间片轮转

​​​​​​​​

算法讲解(以时间片为2)

四、实验程序

五、实验运行结果及分析


一、要求

  1. 阐述多道作业从提交到执行流程说明三级调度的概念、之间的区别与关系;
  2. 阐述FCFS、SJF/SPF、HRRN、RR和多级反馈队列调度算法思想、特点及优缺点;
  3. 实现RR算法

二 、实验原理

阐述多道作业从提交到执行流程说明三级调度的概念、之间的区别与关系;

阐述FCFS、SJF/SPF、HRRN、RR和多级反馈队列调度算法思想、特点及优缺点;

三、实验思想

时间片轮转

​​​​​​​

算法讲解(以时间片为2)

定义一个进程,其属性包括,进程名字,进程开始时间,进程运行时间,进程是否完成(初始值为false)

之后定义测试类实现进程调度,测试类中主要实现图中的逻辑。

四、实验程序

package diaodu;  import java.util.ArrayList;
import java.util.Scanner;  public class Text {  public static void main(String[] args) {  int h[],c=0;  double p=0,t=0;  System.out.println("输入进程的个数:");  Scanner scan=new Scanner(System.in);  int a=scan.nextInt();  System.out.println("请输入进程的名字,到达时间,运行时间");  ArrayList<RR> z=new ArrayList<RR>();  RR[] b=new RR[a];  h=new int[a];  for(int i=0;i<a;i++) {  b[i]=new RR(scan.next(),scan.nextInt(),scan.nextInt(),scan.nextBoolean());  h[i]=b[i].run;  }  int i=0,j=0;  RR l = null;  //时间片为2  label:while(true) {  if(b[i].start<=j) {  z.add(b[i]);  if(l!=null)  z.add(l);  if(!z.isEmpty()) {   RR g=z.remove(0);  if(g.run>2) {  System.out.println("-------------------");  System.out.println(g.name+"运行2个时间片");  g.run-=2;  j+=2;  l=g;  i++;  }else if(g.run<=2&&g.run!=0){  System.out.println("-------------------");  System.out.printf(g.name+"运行%d个时间片\n",g.run);  j+=g.run;  g.run=0;  l=g;  i++;  }}  }else {  if(!z.isEmpty()) {  RR g=z.remove(0);  if(g.run>2) {  System.out.println("-------------------");  System.out.println(g.name+"运行两个时间片");  g.run-=2;  j+=2;  z.add(g);  }else {  System.out.println("-------------------");  System.out.printf(g.name+"运行%d个时间片\n",g.run);  j+=g.run;  g.run=0;  z.add(g);  }  }  }  if(i>=a)i=0;  for(int k=0;k<a;k++) {  if(b[k].run==0&&b[k].over!=true) {  b[k].over=true;  c++;  System.out.println("---------------------------------------");  System.out.println(b[k].name+"完成了完成时间:"+j+"周转时间:"+(j-b[k].start)+"带权周转时间:"+(j-b[k].start+0.0)/h[k]);  p=p+(j-b[k].start);  t=t+(j-b[k].start)/h[k];  }  }  if(c==a)break label;  }  System.out.println("平均周转时间:"+p/a);  System.out.println("平均带权周转时间:"+t/a);  }
}  package diaodu;  public class RR{  String name;  int start;  int run;  boolean over;  public RR(String name,int start,int run,boolean over) {  this.name=name;  this.start=start;  this.run=run;  this.over=over;  }
}  

五、实验运行结果及分析

输出结果包括:完成时间,周转时间,带权周转时间,平均周转时间,平均带权周转时间

时间片轮转算法思想(java)相关推荐

  1. 视频教程-快速排序算法-算法思想-Java

    快速排序算法-算法思想 十三年软件互联网从业经验,使用JDK从1.4到1.8,从传统系统开发到互联网架构,从Struts使用到spring Cloud,拿过2次极客软件创意比赛大奖.曾经摆过地摊,卖过 ...

  2. java 算法思想,Java/12_算法思想.md at master · Jn6/Java · GitHub

    常见的算法思想 一.排序思想 1.前K个高频元素(347) 问题描述:给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = ...

  3. java架构师进阶之独孤九剑(一)-算法思想与经典算法

    " 这是整个架构师连载系列,分为9大步骤,我们现在还在第一个步骤:程序设计和开发->数据结构与算法. 我们今天讲解重点讲解算法. 算法思想 1 贪心思想 顾名思义,贪心算法总是作出在当 ...

  4. java 合并算法思想_Java实现合并两个有序序列算法示例

    本文实例讲述了Java实现合并两个有序序列算法.分享给大家供大家参考,具体如下: 问题描述 输入:序列A,其中a0,其中b0 算法思想 创建一个长度为r的数组R,将A中的序列看作是两个有序序列 B=A ...

  5. 金融业XIRR函数的算法思想与实现,java/plsql

    一.内部收益率(IRR)介绍 内部收益率(Internal Rate of Return (IRR)),就是NPV(净现值)等于零时的折现率.计算内部收益率要用若干个折现率进行试算,直至找到净现值等于 ...

  6. Java使用动态规划算法思想解决01背包问题

    Java使用动态规划算法思想解决背包问题 背包问题是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 动 ...

  7. JAVA工程师常用算法_算法工程师必须要知道的8种常用算法思想

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 1.1 ...

  8. 95% 的算法都是基于这 6 种算法思想,大厂Java面试必考点

    // 当前结点的 id 符合查找条件,返回当前结点 if(node.id === id) return node // 前结点的 id 不符合查找条件,继续查找它的每一个子结点 for(var i = ...

  9. java经典算法思想 贪心_这几道经典例题帮你轻松搞透贪心算法

    贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...

最新文章

  1. Swift3.0语言教程字符串与文件的数据转换
  2. 产品推广系统推荐乐云seo_优化推广公司红利产品推荐“爱采购cpc竞价版”
  3. 开发者们,「Innovation 2021」网易应用创新开发者大赛正式开赛了!
  4. concurrent: Callable用法
  5. python中字典的常用函数_Python字典dict常用方法函数实例
  6. 前端学到什么程度可以找到工作?
  7. 机器学习—数据清洗总结
  8. Paip.断点调试MYSQL存储过程跟函数的解决方案大法
  9. strcmp函数原型 C语言
  10. 非线性光纤光学_进展 | 二维材料复合光纤实现超高非线性效应
  11. 从零开始创建自己的博客
  12. 转载:信号与系统的简介
  13. html实现微信公众号,H5在微信公众号的下拉刷新实现
  14. 怎么用免费视频引流?如何利用视频网站免费引流?
  15. 银行卡卡号格式规范 每隔4为一个空格
  16. 小米 android 8.1手机,小米又一款手机获得安卓8.1系统更新!
  17. 计算机进行加法运算的原理,计算机系统原理(九) 二进制整数的加法运算和减法运算...
  18. 由于幸存者偏差,导致强变量在后续迭代中逐渐削弱甚至相反怎么办|文末有福利
  19. javascript中网页 url 与字符串之间的转换
  20. c# 二维码识别 摄像头使用 windows

热门文章

  1. jar包配置开机自启
  2. python多线程突破百度云限速下载
  3. leetcode142之寻找环形链表的环的起点
  4. ECSHOP安装流程
  5. html修改logo,教你用CSS3打造HTML5的Logo
  6. 计算广告第一章——在线广告综述
  7. vue的生命周期钩子是什么?
  8. 当安全遇上AI 阿里聚安全算法挑战赛 队伍经验分享
  9. jython 调用java_Jython简介,第1部分:Java编程变得更容易
  10. C语言 1999年标准