java实现操作系统的短进程作业调度示例分享_java

复制代码 代码如下:

package com;

import java.util.Arrays;
 public class sjf {

  public static void main(String[] args) {
   sjf SJF=new sjf();
   SJF.fun1();
  }

  int starttime;
  int arrivetime;
  int finishtime;
  int zhouzhuan;
  

  public void fun1(){

   int a[]={1,3,2};
   int c[]=new int[3];
   for (int i = 0; i < 3; i++) {
    c[i]=a[i];
   }
   Arrays.sort(c);
   finishtime=a[0];
   int[]d={0,3,3};
   int zhouzhuan=finishtime-arrivetime;
   float weightzhouzhuan=(float)zhouzhuan/a[0];//位权周转时间为周转时间h
   System.out.println("开始时间"+starttime+"\t"+"到达时间"
     +arrivetime+"\t"+"完成时间"+finishtime+"\t"+"周转时间"+zhouzhuan+"\t"+"服务时间"+a[0]+"\t"+"带权周转时间"+weightzhouzhuan);

   for (int i = 1; i < 3; i++) {
    arrivetime=d[i];
    if(finishtime>=arrivetime){
     starttime=finishtime;
     finishtime+=c[i];
     zhouzhuan=finishtime-arrivetime;
     weightzhouzhuan=(float)zhouzhuan/c[i];
     System.out.println("开始时间"+starttime+"\t"+"到达时间"
       +arrivetime+"\t"+"完成时间"+finishtime+"\t"+"周转时间"+zhouzhuan+"\t"+"服务时间"+c[i]+"\t"+"带权周转时间"+weightzhouzhuan);
    }else{

     Arrays.sort(c);
     starttime=arrivetime;
     finishtime=starttime+c[i];
     zhouzhuan=finishtime-arrivetime;
     weightzhouzhuan=(float)zhouzhuan/c[i];
     System.out.println("开始时间"+starttime+"\t"+"到达时间"
       +arrivetime+"\t"+"完成时间"+finishtime+"\t"+"周转时间"+zhouzhuan+"\t"+"服务时间"+c[i]+"\t"+"带权周转时间"+weightzhouzhuan);

    }

    
   }
  }

 }

时间: 2024-11-02 08:27:53

java实现操作系统的短进程作业调度示例分享_java的相关文章

java多线程Future和Callable类示例分享_java

一,描写叙述     ​在多线程下编程的时候.大家可能会遇到一种需求,就是我想在我开启的线程都结束时,同一时候获取每一个线程中返回的数据然后再做统一处理,在这种需求下,Future与Callable的组合就派上了非常大的用场. 也有人会说,我能够使用同步来完毕这个需求啊,普通情况下确实能够.可是在一种特殊情况下就不行了:     ​想象,你开启了多个线程同步计算一些数据,可是大家都知道,线程是会争用资源的,也就是说.你开启多个线程来同步计算数据时.事实上线程之间的计算顺序是不可空的,当然除非你非

java使用ftp上传文件示例分享_java

复制代码 代码如下: import java.io.ByteArrayInputStream;  import java.io.FileOutputStream;  import java.io.IOException;  import java.net.SocketException;  import java.text.SimpleDateFormat;  import java.util.Date;  import org.apache.commons.io.IOUtils;  impor

java实现文本文件删除空行的示例分享_java

java删除文本文件空行 复制代码 代码如下: import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

使用java swing实现qq登录界面示例分享_java

用Java Swing做的一个QQ登录界面 复制代码 代码如下: import java.awt.Container;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax

java使用iterator遍历指定目录示例分享_java

可以遍历指定目录(一个或多个)及其所有子文件,用Iterator实现 复制代码 代码如下: package archiver.util; import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List; public class FileIterator implements Iterator<File>, Iterabl

java跟踪执行的sql语句示例分享_java

代码: 复制代码 代码如下: package com.lwj.test.proxy; import java.lang.reflect.InvocationHandler;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Connection;import java.sql.SQLExce

java使用listIterator逆序arraylist示例分享_java

思路分析:要逆序遍历某个列表,首先要获得一个ListIterator对象,利用for()循环,以ListIterator类的hasNext()方法作为判断条件,通过循环执行ListIterator类的next()方法将游标定位到列表结尾,然后在另一个for循环中,以ListIterator类的hasPrevious()方法作为判断条件,通过ListIterator类的previous()方法逆序输出列表中的元素. 代码如下: 复制代码 代码如下: import java.util.ArrayLi

java使用泛型实现栈结构示例分享_java

思路分析:既然是用泛型实现栈结构,那就不能用JDK自带的stack包了,需要自己定义一个栈结构,比如LinkedList. 代码如下: Stack.java: 复制代码 代码如下: package cn.edu.xidian.crytoll;import java.util.LinkedList; public class Stack<T> {     private LinkedList<T> container = new LinkedList<T>();     

Java实现AES加密算法的简单示例分享_java

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用. 大多数AES计算是在一个特别的有限域完成的. AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为"状态(state)",其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte).(Rijndael加密法因支持更大的区块,其矩阵行