资源简介
用java实现高响应比优先算法,考虑了空转的情况(即:在前面的进程做完之前后面的进程没有进入)。
代码片段和文件信息
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
class OS {
Jframe f;JLabel l1l2l3l4l5l6;JTextField t1t2t3t4t5t6;
JButton b;JPanel j1j2j3;JTextArea ta;
void disp()
{
f=new Jframe(“Operation System“);
j1=new JPanel();
j2=new JPanel();
j3=new JPanel();
l1=new JLabel(“请输入作业数:“JLabel.CENTER);
l2=new JLabel(“平均周转时间:“JLabel.CENTER);
l3=new JLabel(“平均带权周转:“JLabel.CENTER);
l4=new JLabel(“进入时间:“JLabel.CENTER);
l5=new JLabel(“运行时间:“JLabel.CENTER);
l6=new JLabel(“运行结果:“JLabel.CENTER);
t1=new JTextField(3);
ta=new JTextArea(6030);
b=new JButton(“开始运算“);
b.addActionListener(new Cal());
j1.add(l1);j1.add(t1);
t2=new JTextField(30);
t3=new JTextField(30);
t4=new JTextField(15);
t5=new JTextField(15);
j1.setLayout(new GridLayout(0 1));
j1.add(l4);
j1.add(t2);
j1.add(l5);
j1.add(t3);
j2.add(l6);
j2.add(ta);
j1.add(l2);
j1.add(t4);
j1.add(l3);
j1.add(t5);
j3.add(b);
f.add(j1“West“);
f.add(j2“Center“);
f.add(j3“South“);
f.setSize(700600);
f.setLocationRelativeTo(null); //居中显示
f.setResizable(false);
f.setVisible(true);
}
class Cal implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s1s2s3;int workcount;int iindex=0index1=0dbindex=0;int timenow;float dbmaxdb=0intime;boolean flag=false;
int kqjm;
s1=t1.getText();
workcount=Integer.parseInt(s1);//获得作业数
s2=t2.getText();
String x[]=new String[workcount];//获得进入时间
x=s2.split(“ “);
int handin[]=new int[workcount];
for(i=0;i {
handin[i]=Integer.parseInt(x[i])/100*60+Integer.parseInt(x[i])%100;//起始时间
}
s3=t3.getText();
String y[]=new String[workcount];//获得运行时间
y=s3.split(“ “);
int work[]=new int[workcount];
for(i=0;i {
work[i]=Integer.parseInt(y[i])/100*60+Integer.parseInt(y[i])%100;
}
//创建一个job类的实例
myJob job[]=new myJob[workcount];int turn[]=new int[workcount];//存储调度顺序
for(i=0;i {
job[i]=new myJob(handin[i]work[i]falsei0);
// job[i].handin=handin[i];
// job[i].work=work[i];
// job[i].finish=false;
// System.out.print(“ “+handin[i]);
System.out.print(“ “+job[i].handin+job[i].work+job[i].finish+job[i].jobnum);
}
//找到第一个进来的job并输出
for(i=0;i {
if(job[i].handin {
index=i;
}
else if(job[i].handin==job[index].handin)
{
if(job[i].work index=i;
}
}
System.out.print(“ 第一个:“+index+“ “);
timenow=job[index].handin+job[index].work;
System.out.println(“timenow=“+timenow+“ “);
turn[0]=index;
job[index].finish=true;
for(q=0;q {
if(job[q].finish==false&&timenow>job[q].ha
相关资源
- java web 项目 oa系统 有4套
- jnativehook 用于Java的全局键盘和鼠标侦
- Java导出到excel的工具类
-
java通过Jfr
ame做一个登录系统的界面 - Linux操作系统高性能集群监控管理之道
- 基于java图形界面的内存管理相关算法
- java swing+socket实现多人聊天程序
- 进程调度模拟-java图像界面
- rsa方式文件加密java版
- JAVA泛型加减乘除
- 韩顺平_Java韩顺平Java全部视频教程(
- JAVA 图像高斯滤波处理
- java简单程序,银行账户管理系统
- 商品信息管理系统Java实现+MySQL 数据库
- javax.websocket-api-1.0.jar
- 在Qt平台C++和Java代码的交互
- 模拟CSMA/CD的过程
- EncodingDetect.java
- javaweb一键部署批处理文件
- java+sqlserver学生选课管理系统代码+数
- mysql+jsp+servlet 增删改查
- java万年历源程序
- java 程序输出九九乘法表
- JVMTI对JAVA加密
- hello world.jar
- 迭代法求信道容量java实现
- 编译OpenCV3.4.1生成C库Java库的方法
- Java程序启动器 Java program launcher.exe
- sql_data.java
- jacob 包 及dll文件
评论
共有 条评论