• 大小: 1.71MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-10
  • 语言: Java
  • 标签:

资源简介

Java模拟最短作业优先、时间片轮转、最高响应比和先来先服务进程调度算法 rar中有四种算法和俩个对进程用时和周转时间制图的java源代码,另外有jcommon-1.0.23.jar和jfreechart-1.0.19.jar俩个制图包

资源截图

代码片段和文件信息

package sjfhrrnrr;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/***
 * 先来先服务算法 *
 */
public class FCFS {
private static int task_num = Process.task_num;
    public static List task_time = new ArrayList<>();
    private static SimpleDateFormat df = new SimpleDateFormat(“HHmmss“);
    private static SimpleDateFormat tm = new SimpleDateFormat(“HH:mm:ss“);
    private static List execute_time = new ArrayList<>();
    private static String []str=new String[task_num];   //周转时间
    private static String []str1=new String[task_num]; //进程号数组
    private static String []str2=new String[task_num]; //用时
    private static String str3; //平均周转时长


    public static void FCFS() {

        for (int i = 0; i < task_num; i++) {
            try {
                double[] t = get_task(task_timei);
                int current_task_time = (int) t[3];
                int task_NO = (int) t[0];
                System.out.print(tm.format(new Date()) + “第“ + task_NO + “号进程开始执行====“);

                Thread.sleep(1000 * current_task_time);
                System.out.println(“  “ + tm.format(new Date()) + “执行完成=====用时为“ + current_task_time + “S“);
                str1[i]=task_NO+““;
                str2[i]=current_task_time+““;

                double exe_time =System.currentTimeMillis() - t[1];
                double[] e = new double[2];
                e[0] = task_NO;
                e[1] = exe_time;
                execute_time.add(e);
            } catch (InterruptedException e) {
                e.printStackTrace();

            }

        }


       show_time();
       new Line(“FCFS“str str1 str2);
       new line2(“FCFS“ str1 str str3);

    }


    public  static void show_time()
    {
        double sum_time=0;
        for(int i=0;i        {
            double[] t=execute_time.get(i);
            System.out.println(“task:“+t[0]+“:周转时间=“+(int)(t[1]/1000)+“S“);
            sum_time+=t[1];
            str[i]=(int)(t[1]/1000)+““;
        }
        System.out.println(“使用最短作业优先的策略,平均周转时间为:“+(int)(sum_time/execute_time.size()/1000)+“S“);
        str3=(int)(sum_time/execute_time.size()/1000)+““;
    }

    public static double[] get_task(List task_timeint t) {
        double[] rt = new double[4];
        rt = task_time.get(t);
        return rt;
    }

    static void init_task(List task_info int tn) {
        task_num = tn;
        for (int i = 0; i < task_num; i++) {
            double[] t = task_info.get(i);
            t[1] = System.currentTimeMillis();

            task_time.add(t);

        }
    }


}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2827  2018-06-21 15:16  sjfhrrnrr\FCFS.java

     文件       3490  2018-06-21 15:15  sjfhrrnrr\HRRN.java

     文件     330246  2014-07-31 14:02  sjfhrrnrr\jcommon-1.0.23.jar

     文件    1570157  2014-07-31 14:02  sjfhrrnrr\jfreechart-1.0.19.jar

     文件       2203  2018-06-21 15:13  sjfhrrnrr\Line.java

     文件       2006  2018-06-21 15:08  sjfhrrnrr\line2.java

     文件       1588  2018-06-21 12:41  sjfhrrnrr\Process.java

     文件       3486  2018-06-21 15:22  sjfhrrnrr\RR.java

     文件       3058  2018-06-21 15:44  sjfhrrnrr\SJF.java

     目录          0  2018-06-21 16:06  sjfhrrnrr

----------- ---------  ---------- -----  ----

              1919061                    10


评论

共有 条评论