• 大小: 4KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-06
  • 语言: Java
  • 标签: 操作系统  

资源简介

多道批处理作业调度模拟程序 目的: 熟悉作业调度算法及其实现 内容: 编写一个程序完成多道批处理作业调度 要求: 只考虑1个CPU的资源,其他资源不考虑 使用响应比高者优先算法 程序采用键盘输入,输入格式为: K TJ1 YS1 …… TJK YSK 其中K是作业数(>0),TJi提交时间,YSi (i=1~K)是作业预计的运行时间(以分钟计)TJ的输入格式是XXYY,其中XX是时,YY是分,如10点28分,输入为1028。但内部计算要以60进制来算。要求输出按照作业调度的先后次序输出结果,每行为一个作业状态,从左到右分别是调度次序,作业号,调度时间,周转时间和带权周转时间最后一行输出两个数,第一为平均周转时间,第二为平均带权周转时间。 输入方式为:时间用时刻输入法 即10:10 输入1010 以空格隔开 例如进程数为4, 提交时间 0950 1010 1020 1130 即代表4个进程提交时间分别为9:50 ,10:10....

资源截图

代码片段和文件信息

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 j1j2;JTextArea ta;
  void disp()
  {
  f=new Jframe(“Operation System“);
  j1=new JPanel();
  j2=new JPanel();
  l1=new JLabel(“请输入作业数:“);
  l2=new JLabel(“平均周转时间:“);
  l3=new JLabel(“平均带权周转:“);
  l4=new JLabel(“提交时间:“);
  l5=new JLabel(“运行时间:“);
  l6=new JLabel(“运行结果:“);
  t1=new JTextField(3);
  ta=new JTextArea(1030);
  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);
  j2.add(l4);
  j2.add(t2);
  j2.add(l5);
  j2.add(t3);
  j2.add(l6);
  j2.add(ta);
  j2.add(l2);
  j2.add(t4);
  j2.add(l3);
  j2.add(t5);
  j2.add(b);
  f.add(j1“North“);
  f.add(j2“Center“);
  f.setSize(367470);
  f.setLocation(8040);
  f.setVisible(true);
 
  }
  class Cal implements ActionListener
  {
  public void actionPerformed(ActionEvent e)
  {
  String s1s2s3;int workcount;int iindex=0index1=0dbindex=-1;int timenow;float dbmaxdb=0;
  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;
}

myJob job[]=new myJob[workcount];int turn[]=new int[workcount];

for(i=0;i {
job[i]=new myJob(handin[i]work[i]falsei);
// job[i].handin=handin[i];
// job[i].work=work[i];
// job[i].finish=false;
// System.out.print(“ “+handin[i]);
System

评论

共有 条评论