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  sjfhrrnrrFCFS.java

     文件       3490  2018-06-21 15:15  sjfhrrnrrHRRN.java

     文件     330246  2014-07-31 14:02  sjfhrrnrrjcommon-1.0.23.jar

     文件    1570157  2014-07-31 14:02  sjfhrrnrrjfreechart-1.0.19.jar

     文件       2203  2018-06-21 15:13  sjfhrrnrrLine.java

     文件       2006  2018-06-21 15:08  sjfhrrnrrline2.java

     文件       1588  2018-06-21 12:41  sjfhrrnrrProcess.java

     文件       3486  2018-06-21 15:22  sjfhrrnrrRR.java

     文件       3058  2018-06-21 15:44  sjfhrrnrrSJF.java

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

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

              1919061                    10


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)