代码块:

import java.util.Arrays;
import java.util.Scanner;public class OS3 {static class HomeWork{private String name;private int ArrivalTime;private int ServiceTime;private int CompletionTime;private int TurnaroundTime;private double PowerTurnaroundTime;private int LOL;public int getLOL() {return LOL;}public void setLOL(int LOL) {this.LOL = LOL;}public int getCompletionTime() {return CompletionTime;}public void setCompletionTime(int completionTime) {CompletionTime = completionTime;}public int getTurnaroundTime() {return TurnaroundTime;}public void setTurnaroundTime(int turnaroundTime) {TurnaroundTime = turnaroundTime;}public double getPowerTurnaroundTime() {return PowerTurnaroundTime;}public void setPowerTurnaroundTime(double powerTurnaroundTime) {PowerTurnaroundTime = powerTurnaroundTime;}public int getArrivalTime() {return ArrivalTime;}public int getServiceTime() {return ServiceTime;}public String getName() {return name;}public void setArrivalTime(int arrivalTime) {ArrivalTime = arrivalTime;}public void setName(String name) {this.name = name;}public void setServiceTime(int serviceTime) {ServiceTime = serviceTime;}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int p;p = sc.nextInt();HomeWork[] w1 = new HomeWork[p];int[] temp = new int[p];int[] lp = new int[p];int[] artime = new int[p];double[] zhan = new double[p];int[] zhan1 = new int[p];//int[] arttime = new int[p];for (int i = 0; i < p; i++) {  //存作业名w1[i] = new HomeWork();w1[i].setName(sc.next());}for (int i = 0; i < p; i++) {w1[i].setArrivalTime(sc.nextInt());    //存到达时间artime[i] = w1[i].getArrivalTime();w1[i].setLOL(1);}//arttime = artime;Arrays.sort(artime);for (int i = 0; i < p; i++) {            //存运行时间w1[i].setServiceTime(sc.nextInt());temp[i] = w1[i].getServiceTime();//运行时间临时数组}Arrays.sort(temp);int Time = 0;for (int i = 0; i <p ; i++) {for (int j = 0; j < p; j++) {if (artime[i] == w1[j].getArrivalTime()){lp[i] = j;}}}//==============================================================================================Time = artime[0];int x = 0;   int  t = 0;   double a = 0;  int b = 0;for (int i = 0; i < p; i++) {//=============================================//计算完成时间//for (int j = 0; j < p; j++) {if (Time >= w1[j].getArrivalTime() && w1[j].getLOL() == 1) {zhan[x] = 1.0*(Time - w1[j].getArrivalTime())/w1[j].getServiceTime() + 1;zhan1[x] = j;x++;t = 1;}}if (t == 0){Time = artime[i];x = 0;t = 0;i = i-1;continue;}a = zhan[0]; b =zhan1[0];if (x == 1){w1[b].setLOL(0);Time = Time + w1[b].getServiceTime();w1[b].setCompletionTime(Time);}else {for (int j = 0; j < x; j++) {if (a<zhan[j]){a = zhan[j];b = zhan1[j];}}w1[b].setLOL(0);Time = Time + w1[b].getServiceTime();w1[b].setCompletionTime(Time);}t = 0;x = 0;//==========================================================}//==============================================================================================for (int i = 0; i < p; i++) { //计算周转和带权周转w1[i].setTurnaroundTime(w1[i].getCompletionTime() - w1[i].getArrivalTime());w1[i].setPowerTurnaroundTime(1.0*w1[i].getTurnaroundTime()/w1[i].getServiceTime());}int temp1 = 0;System.out.print("作 业 名:");for (int j = 0; j < p; j++){temp1 = lp[j];if(j==p-1){System.out.println(w1[temp1].getName());}else{System.out.print(w1[temp1].getName()+" ");}}System.out.print("到达时间:");for (int K = 0; K < p; K++){temp1 = lp[K];if(K==p-1){System.out.println(w1[temp1].getArrivalTime());}else{System.out.print(w1[temp1].getArrivalTime()+" ");}}System.out.print("服务时间:");for (int K = 0; K < p; K++){temp1 = lp[K];if(K==p-1){System.out.println(w1[temp1].getServiceTime());}else{System.out.print(w1[temp1].getServiceTime()+" ");}}System.out.print("完成时间:");for (int K = 0; K < p; K++){temp1 = lp[K];if(K==p-1){System.out.println(w1[temp1].getCompletionTime());}else{System.out.print(w1[temp1].getCompletionTime()+" ");}}System.out.print("周转时间:");for (int K = 0; K < p; K++){temp1 = lp[K];if(K==p-1){System.out.println(w1[temp1].getTurnaroundTime());}else{System.out.print(w1[temp1].getTurnaroundTime()+" ");}}double l = 0;System.out.print("带权周转时间:");for (int K = 0; K < p; K++){temp1 = lp[K];if(K==p-1){l = w1[temp1].getPowerTurnaroundTime();System.out.println(String.format("%.2f",l));}else{l = w1[temp1].getPowerTurnaroundTime();System.out.print(String.format("%.2f",l)+" ");}}}}

7-3 作业调度算法--高响应比优先相关推荐

  1. 作业调度算法--高响应比优先 操作系统_处理器管理_编程题

    操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...

  2. 7-3 作业调度算法--高响应比优先 (40 分)(思路+详解+vector容器做法)Come Baby!!!!!

    一:题目 输入N(N>0)个作业,输入每个作业的名字,到达时间,服务时间,按照高响应比优先算法,计算每个作业的完成时间,周转时间,带权周转时间(保留2位小数). 输入格式: 第一行输入作业数目, ...

  3. 操作系统调度算法--高响应比优先调度算法解析

    高响应比优先调度算法(Highest Response Radio Next,HRRN)是一种对CPU中央控制器响应比的分配的算法.HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之 ...

  4. 作业调度算法【平均周转时间、平均带权周转时间、先来先服务FCFS、短作业优先SJF、高优先权(级)算法FPF、高响应比优先算法HRRN】

    文章目录 先来先服务算法(FCFS) 短作业优先算法(SJF).短进程优先算法(SPF) 周转时间和带权周转时间 高优先权(级)调度算法FPF 高响应比优先调度算法HRRN 先来先服务算法(FCFS) ...

  5. 假设有四个作业,它们的提交、运行时间如下表所示。若采用高响应比优先调度算法,试问平均周转时间和平均带权周转时间为多少?

    处理机调度算法 题目: 假设有四个作业,它们的提交.运行时间如下表所示.若采用高响应比优先调度算法,试问平均周转时间和平均带权周转时间为多少? 高响应比优先(HRRN)调度算法 是对FCFS调度算法和 ...

  6. 调度算法——先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN) 例题详细!!!

    文章目录 前言 知识总览 先来先服务(FCFS, First Come First Serve) 短作业优先(SJF, Shortest Job First) 对FCFS和SJF两种算法的思考 高响应 ...

  7. 2.2.4 操作系统之作业/进程调度算法(FCFS先来先服务、SJF短作业优先、HRRN高响应比优先)

    文章目录 0.思维导图 1.先来先服务---FCFS 2.短作业优先---SJF 3.高响应比优先---HRRN 4.三种算法的对比和总结 0.思维导图 1.先来先服务-FCFS First come ...

  8. 十一、FCFS(先来先服务)、SJF(短作业优先)、HRRN(高响应比优先)

    一.知识总览 二.先来先服务(FCFS) **注意:**针对于先来先服务算法某些作业(或进程)平均周转时间长的缺点,提出了短作业优先的算法(SJF) 三.短作业优先(SJF) 1.非抢占式的短作业优先 ...

  9. 高响应比优先调度算法 (HRRN)例题

    高响应比优先调度算法(Highest Response Ratio Next)是一种对CPU中央控制器响应比的分配的一种算法.HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折 ...

  10. 高响应比优先调度算法

    任务描述 本关任务:编写一个高响应比优先调度算法解决一个实际的进程调度问题,并打印出每个进程的完成时间.周转时间和带权周转时间 相关知识 为了完成本关任务,你需要掌握:1.先来先服务调度算法,2.进程 ...

最新文章

  1. Fins TCP协议
  2. Windows Phone 8初学者开发—第17部分:Coding4Fun工具包简介
  3. 开源一些Delphi系统:mp3play
  4. java String长度与varchar长度匹配理解(字符和字节长度理解)
  5. 几种流行Webservice控制框架
  6. Ubuntu 配置MySQL远程连接
  7. 基于Spring Cloud的微服务架构
  8. 百叶窗式的幻灯片切换效果原理
  9. Solr使用初探——SolrJ的使用
  10. 在Android studio环境下使用junit框架进行单元测试
  11. 下面哪个对象能代表当前的HTML文件,GD:JAVA考试选择题
  12. MyEclipse设置字体大小
  13. 论文丨免费下载SCI全文文献的10个方法
  14. JAVASE篇的入门经典书籍推荐
  15. 最佳的远程桌面连接工具
  16. bypass-wts-waf
  17. php中hover,CSS中的onmouseover和hover有什么区别?
  18. Deepest Station
  19. docker 安装snipe-it
  20. 腾讯地图微信小程序JavaScript SDK

热门文章

  1. 第二人生的源码分析(12)天空显示的实现
  2. USB接口不同颜色的作用
  3. 深度学习敲门砖——神经网络
  4. 吃着火锅唱着歌,却被操作系统砸了饭碗,开发者如何反击?
  5. Django中select_related的作用和用法
  6. 用linux安装包装ftp,Linux 安装vsftpd和ftp客户端
  7. 远期债券收益率期望曲率调整
  8. .NET EF~Entity Framework详解(lambda表达式、linq到EF)
  9. 网页导出pdf不完整_偶尔偷个懒吧:3种pdf文献全文一键翻译的方法
  10. ORCAD元件的批量替换与更新