时间片轮转算法思想(java)
目录
一、要求
二 、实验原理
阐述多道作业从提交到执行流程说明三级调度的概念、之间的区别与关系;
阐述FCFS、SJF/SPF、HRRN、RR和多级反馈队列调度算法思想、特点及优缺点;
三、实验思想
时间片轮转
算法讲解(以时间片为2)
四、实验程序
五、实验运行结果及分析
一、要求
- 阐述多道作业从提交到执行流程说明三级调度的概念、之间的区别与关系;
- 阐述FCFS、SJF/SPF、HRRN、RR和多级反馈队列调度算法思想、特点及优缺点;
- 实现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)相关推荐
- 视频教程-快速排序算法-算法思想-Java
快速排序算法-算法思想 十三年软件互联网从业经验,使用JDK从1.4到1.8,从传统系统开发到互联网架构,从Struts使用到spring Cloud,拿过2次极客软件创意比赛大奖.曾经摆过地摊,卖过 ...
- java 算法思想,Java/12_算法思想.md at master · Jn6/Java · GitHub
常见的算法思想 一.排序思想 1.前K个高频元素(347) 问题描述:给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = ...
- java架构师进阶之独孤九剑(一)-算法思想与经典算法
" 这是整个架构师连载系列,分为9大步骤,我们现在还在第一个步骤:程序设计和开发->数据结构与算法. 我们今天讲解重点讲解算法. 算法思想 1 贪心思想 顾名思义,贪心算法总是作出在当 ...
- java 合并算法思想_Java实现合并两个有序序列算法示例
本文实例讲述了Java实现合并两个有序序列算法.分享给大家供大家参考,具体如下: 问题描述 输入:序列A,其中a0,其中b0 算法思想 创建一个长度为r的数组R,将A中的序列看作是两个有序序列 B=A ...
- 金融业XIRR函数的算法思想与实现,java/plsql
一.内部收益率(IRR)介绍 内部收益率(Internal Rate of Return (IRR)),就是NPV(净现值)等于零时的折现率.计算内部收益率要用若干个折现率进行试算,直至找到净现值等于 ...
- Java使用动态规划算法思想解决01背包问题
Java使用动态规划算法思想解决背包问题 背包问题是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高 动 ...
- JAVA工程师常用算法_算法工程师必须要知道的8种常用算法思想
算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 1.1 ...
- 95% 的算法都是基于这 6 种算法思想,大厂Java面试必考点
// 当前结点的 id 符合查找条件,返回当前结点 if(node.id === id) return node // 前结点的 id 不符合查找条件,继续查找它的每一个子结点 for(var i = ...
- java经典算法思想 贪心_这几道经典例题帮你轻松搞透贪心算法
贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...
最新文章
- Swift3.0语言教程字符串与文件的数据转换
- 产品推广系统推荐乐云seo_优化推广公司红利产品推荐“爱采购cpc竞价版”
- 开发者们,「Innovation 2021」网易应用创新开发者大赛正式开赛了!
- concurrent: Callable用法
- python中字典的常用函数_Python字典dict常用方法函数实例
- 前端学到什么程度可以找到工作?
- 机器学习—数据清洗总结
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
- strcmp函数原型 C语言
- 非线性光纤光学_进展 | 二维材料复合光纤实现超高非线性效应
- 从零开始创建自己的博客
- 转载:信号与系统的简介
- html实现微信公众号,H5在微信公众号的下拉刷新实现
- 怎么用免费视频引流?如何利用视频网站免费引流?
- 银行卡卡号格式规范 每隔4为一个空格
- 小米 android 8.1手机,小米又一款手机获得安卓8.1系统更新!
- 计算机进行加法运算的原理,计算机系统原理(九) 二进制整数的加法运算和减法运算...
- 由于幸存者偏差,导致强变量在后续迭代中逐渐削弱甚至相反怎么办|文末有福利
- javascript中网页 url 与字符串之间的转换
- c# 二维码识别 摄像头使用 windows