-
大小: 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
- 上一篇:Java语言程序设计第10版基础篇课后题答案
- 下一篇:rfid的一卡通读写
评论
共有 条评论