-
大小: 1.71MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-08-10
- 語言: Java
- 標簽:
資源簡介
Java模擬最短作業(yè)優(yōu)先、時間片輪轉、最高響應比和先來先服務進程調度算法
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]; //進程號數(shù)組
????private?static?String?[]str2=new?String[task_num]; //用時
????private?static?String?str3; //平均周轉時長
????public?static?void?FCFS()?{
????????for?(int?i?=?0;?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?+?“號進程開始執(zhí)行====“);
????????????????Thread.sleep(1000?*?current_task_time);
????????????????System.out.println(“??“?+?tm.format(new?Date())?+?“執(zhí)行完成=====用時為“?+?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(“使用最短作業(yè)優(yōu)先的策略,平均周轉時間為:“+(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?????????????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的一卡通讀寫
評論
共有 條評論