java作业调度

上传人:壹****1 文档编号:469192406 上传时间:2022-12-29 格式:DOC 页数:17 大小:280KB
返回 下载 相关 举报
java作业调度_第1页
第1页 / 共17页
java作业调度_第2页
第2页 / 共17页
java作业调度_第3页
第3页 / 共17页
java作业调度_第4页
第4页 / 共17页
java作业调度_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java作业调度》由会员分享,可在线阅读,更多相关《java作业调度(17页珍藏版)》请在金锄头文库上搜索。

1、实验二、作业调度模拟程序一、 实验目的(1) 加深对作业调度算法的理解;(2) 进行程序设计的训练。二、 实验内容和要求用高级语言编写一个或多个作业调度的模拟程序。单道批处理系统的作业调度程序。作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素。作业调度算法;(1) 采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。(2) 短作业优先 (SJF) 调度算法,优先调度要求运行时间最短的作业。(3) 响应比高者优先(HRRN)调度算法,为每个作业设置一个优先权(响

2、应比),调度之前先计算各作业的优先权,优先数高者优先调度。RP (响应比) 作业周转时间 / 作业运行时间每个作业由一个作业控制块JCB表示,JCB可以包含以下信息:作业名、提交(到达)时间、所需的运行时间、所需的资源、作业状态、链指针等等作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种之一。每个作业的最初状态都是等待W。三、 实验方法、步骤及结果测试(1) 原理分析及流程图A.编程工具与文件本实验采用JAVA高级语言编写,用eclipse编程工具,原文件为Task.java ,生成文件有Task.class,统一放在Task包(文件夹)中。B.流程图:单道FC

3、FS算法:单道SJPF算法与单道HRRN算法的流程图与FCFS算法的基本一样,只是第二步中的调度顺序的算法不同,SJPF算法与HRRN算法第二步分别为:SJPF算法:调度执行时间最短的作业投入作业,并修改相应的指针,记录开始时间、完成时间等。HRRN算法:调度后备队列中所有作业响应比高的作业投入作业,并修改相应指针,记录开始时间、完成时间等。(2) 详细程序代码及注释package Task;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.text.*;class JCB String nam

4、e;/进程名称 String state=W;/进程状态 int enterTimes ; int needTimes;/运行完所需要时间 int costTimes;/已经使用时间 int startTimes;public class Task extends JApplet private JLabel label_init = new JLabel(进程初始设置); private String process_name = 001, 002, 003, 004, 005; /进程标签 private JTextField field_needtime = new JTextField

5、5; /需要时间设置框 private JTextField field_entertime = new JTextField5;/到达时间设置框 private JLabel label_pname = new JLabel5;/进程名加载标签组 JCB jcb = new JCB5; private JButton button_OK = new JButton(确定); private JButton button_init = new JButton(清空); private JLabel label_zhixing=new JLabel(正在执行); private JLabel l

6、abel_houbei=new JLabel(后备队列); private JLabel field_txt = new JLabel30; /调度前信息显示框 private JLabel label_after = new JLabel(算法调度); /调度标签 private JButton fcfs = new JButton(FCFS); private JButton sjpf = new JButton(SJPF); private JButton hrrn = new JButton(HRRN); private JLabel zhixing_txt = new JLabel4

7、;/当前执行记录 private JLabel field_after = new JLabel40; /调度后信息显示框 private JLabel label_name = new JLabel(进程名); private JLabel label_enter = new JLabel(到达时间); private JLabel label_need = new JLabel(要求服务时间); private JLabel label_start = new JLabel(开始时间); private JLabel label_cost = new JLabel(已用时间); priva

8、te JLabel label_over = new JLabel(结束时间); private JLabel label_zhou = new JLabel(周转时间); private JLabel label_dzhou = new JLabel(带权周转时间); private JLabel label_n = new JLabel(进程名); private JLabel label_ne = new JLabel(要求服务时间); private JLabel label_e = new JLabel(到达时间); private JTextField foot = new JTe

9、xtField(); public Task() /设置该类的构造器 this.setBackground(Color.LIGHT_GRAY); /设置背景颜色 public void init() /解决初始化问题 JPanel panel_top = new JPanel(); panel_top.setLayout(new GridLayout(1, 3); panel_top.add(label_init); for (int i = 0; i 5; i+) jcbi = new JCB(); JPanel panel_init = new JPanel(); panel_init.s

10、etLayout(new GridLayout(3, 6); panel_init.add(label_n); for (int i = 0; i process_name.length; i+) /将进程名添加到panel label_pnamei = new JLabel(process_namei, JLabel.CENTER); label_pnamei.setForeground(Color.red); panel_init.add(label_pnamei); panel_init.add(label_ne); /要求服务时间 for (int i = 0; i 5; i+) fi

11、eld_needtimei = new JTextField(); panel_init.add(field_needtimei); panel_init.add(label_e);/到达时间 for (int i = 0; i 5; i+) field_entertimei = new JTextField(); panel_init.add(field_entertimei); JPanel panel_before = new JPanel(); panel_before.add(button_OK); panel_before.add(button_init); button_OK.a

12、ddActionListener(new InitJBC(); button_init.addActionListener(new Clear(); JPanel panel_1 = new JPanel(); panel_1.setLayout(new BorderLayout(); panel_1.add(panel_top, North); panel_1.add(panel_init, Center); panel_1.add(panel_before,South); JPanel panel_houbeibiao = new JPanel(); panel_houbeibiao.se

13、tLayout(new GridLayout(6, 5); panel_houbeibiao.add(new JLabel(进程名); panel_houbeibiao.add(new JLabel(到达时间); panel_houbeibiao.add(new JLabel(要求服务时间); panel_houbeibiao.add(new JLabel(已用时间); panel_houbeibiao.add(new JLabel(状态); for (int j = 0; j 25; j+) field_txtj = new JLabel(); panel_houbeibiao.add(field_txtj); JPanel panel_button = new JPanel(); panel_button.setLayout(new GridLayout(1, 4, 10, 10); panel_button.add(label_after); panel_button.add(fcfs); panel_button.add(sjpf); panel_button.add(hrrn); fcfs.addActionListener(new Fcfs(); sjpf.addActionListener(new Sjf(); hrrn.addActionListener(n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号