没有合适的资源?快使用搜索试试~ 我知道了~
首页短作业优先算法进程调度程序
短作业优先算法进程调度程序
需积分: 50 10 下载量 12 浏览量
更新于2023-03-16
评论
收藏 307KB DOC 举报
1.1. 设计要求 1) 每一个进程有一个PCB,其内容可以根据具体情况设定。 2) 可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目 3) 进程数、进入内存时间、要求服务时间可以在界面上进行设定 4) 进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下: 进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出) 进程间的同步关系用一个段表示:W2,表示该进程先要等待P2进程执行结束后才可以运行 因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W2 5) 可以在运行中显示各进程的状态:就绪、阻塞、执行 6) 采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列 7) 具有一定的数据容错性
资源详情
资源评论
资源推荐
采用短作业优先算法的进程调度程序
本程序为采用 java 代码实现
.1.
.1.
设计要求
设计要求
1) 每一个进程有一个 PCB,其内容可以根据具体情况设定。
2) 可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目
3) 进程数、进入内存时间、要求服务时间可以在界面上进行设定
4) 进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:
进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由 2 个时间片的输入,
10 个时间片的计算,5 个时间片的输出)
进程间的同步关系用一个段表示:W2,表示该进程先要等待 P2 进程执行结束后才
可以运行
因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W2
5) 可以在运行中显示各进程的状态:就绪、阻塞、执行
6) 采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相
应的阻塞队列
7) 具有一定的数据容错性
代码
package cn.text;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
/**
* 第 342 行确定优先级
* */
public class StopWatch implements ActionListener {
/**作业到达时间**/
float arrtime[]; // 作业到达时间
/**输入时间**/
float inputtime[];//输入时间
/**CPU 运行时间**/
float cputime[];// CPU 运行时间
/**输出时间**/
float outputtime[];// 输出时间
/**等待时间**/
float waittime[]; // 等待时间
/**开始运行时间**/
float instatime[]; // 开始运行时间
/**CPU 开始时间**/
float cpustatime[];// CPU 开始时间
/**输出开始时间**/
float outstatime[];// 输出开始时间
/**结束运行时间**/
float fintime[]; // 结束运行时间
/**优先权**/
float prio[]; // 优先权
/**是否已经完成**/
String state[]; // 是否已经完成
/**是否到达**/
int arrival[];// 是否到达
/**是否输入完成**/
int inputdone[];// 是否输入完成
/**是否分配输入设备**/
int inputown[];// 是否分配输入设备
/**是否运行完成**/
int cpudone[];// 是否运行完成
/**是否分配内存**/
int cpuown[];// 是否分配内存
/**是否输出完成**/
int outputdone[];// 是否输出完成
/**是否分配输出设备**/
int outputown[];// 是否分配输出设备
/**等待的进程号**/
int waitpro[];// 等待的进程号
/** 秒表线程启动控制 */
public boolean isRun = false;
/** 记录开始时间 */
private long starTime;
/** 记录暂停时间 */
private long stopTime;
/** 记录暂停到继续的总时间 */
private long wasteTime;
/** 基于 Frame 的窗口 */
private JFrame stopWatchFrame;
private JButton starButton;
private JButton stopButton;
private JButton continueButton;
JLabel TIME = new JLabel("");
JLabel WAIT = new JLabel("等待的进程↓");
JLabel BEIW = new JLabel("被等的进程↓");
JLabel idl = new JLabel("输入设备↓");
JLabel odl = new JLabel("输出设备↓");
JLabel pl = new JLabel("进程数↓");
JPanel p1 = new JPanel();
/**最大数量的进程数**/
int MAXPRO;// 最大数量的进程数
/**输入、输出设备**/
int IDMAX, ODMAX;// 输入、输出设备
JTable table;
TextField beideng = new TextField();//
TextField deng = new TextField();//
TextField ID = new TextField();//
TextField OD = new TextField();//
TextField MAXP = new TextField();//
JButton Enter = new JButton("确定");
/** 创建一个基于 Frame 的窗口.其中显示一个秒表(时:分:秒:毫秒),还有“开始”“暂停“继续
“停止”新建秒表”按钮 */
public StopWatch(int i, int idmax, int odmax) {
MAXPRO = i;//进程数
IDMAX = idmax;//输入设备数
ODMAX = odmax;//输出设备数
arrtime = new float[i];
inputtime = new float[i];
cputime = new float[i];
outputtime = new float[i];
fintime = new float[i];
prio = new float[i];
waittime = new float[i];
instatime = new float[i];
cpustatime = new float[i];
outstatime = new float[i];
state = new String[i];
arrival = new int[i];
inputdone = new int[i];
inputown = new int[i];
剩余14页未读,继续阅读
qq_42542038
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0