资源简介
用java编写的一个调度算法,是计算机操作系统里的一个算法的演示程序
附源代码和设计报告

代码片段和文件信息
package math;
//主函数及算法
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.Vector;
import view.View;
/**
* 多级反馈队列算法
* @author 谌毅
*
*/
public class Arithmetic {
private static SeqQueue[] sq=new SeqQueue[4];
private static View view=null;
private int num=1time=-1doflag=0threadNum=0;
private static int maxthreadnum=5;
//time为暂停计时用||doflag标示出当前正在执行的队列
private boolean addThreadFlag=false;//addThreadFlag判断添加进程是否还在执行false为在运行true为停止
private boolean delThreadFlag=false;//delThreadFlag判断添加进程是否还在执行false为在运行true为停止
private boolean newflag=true;//newflag标示在执行过程中是否有比自己优先级高的进程加入队列true为没有false为有
private boolean isStop=false;//表示是否结束执行进程
private Work work=null;//保存每次从队列取出的进程
private SimpleDateFormat sdf=new SimpleDateFormat(“hh:mm:ss“);//定义时间显示格式
private Thread addthread=nulldelthread=null;//定义两个线程
public Arithmetic() {
for(int i=0;i<4;i++){
sq[i]=new SeqQueue(5(int)Math.scalb(1 i+1));//构建队列
}
view=new View(sq);//实例化面板
// maxthreadnum=view.getThreadNum();
// while(maxthreadnum>10||maxthreadnum==0){
// maxthreadnum=view.getThreadNum();
// }
addthread=new addThread();
delthread=new delThread();
addthread.start();
delthread.start();
}
/**
* 用于启动添加进程
* @author 谌毅
*/
public void startAddThread(){
addthread=new addThread();
threadNum=0;
addThreadFlag=false;
addthread.start();//启动添加进程
}
/**
* 用于启动执行进程
* @author 谌毅
*/
public void startDelThread(){
delthread=new delThread();
isStop=false;
delThreadFlag=false;
delthread.start();//启动执行进程
}
/**
* 用于停止添加进程
* @author 谌毅
*/
@SuppressWarnings(“deprecation“)
public void stopAddThread(){
addThreadFlag=true;
addthread.stop();
addthread=null;
}
/**
* 用于停止执行进程
* @author 谌毅
*/
public void stopDelThread(){
isStop=true;
}
/**
* 自动添加进程的方法
* @author 谌毅
*
*/
class addThread extends Thread{//添加进程
@SuppressWarnings(“deprecation“)
public void run() {
while(true){
try{
threadNum++;
Thread.sleep(new Random().nextInt(5000));
int time=0;
while(time==0){
time=new Random().nextInt(20);//随机生成进程要完成的时间
}
num++;
Work work=new Work(“进程“+(num-1)time);//生成一个进程
int flag=addInSeqQueue(0 work);//把进程放入队列
if(flag newflag=false;//表示有优先级更高的进程进入队列
}
View.setSq(sq);//更新面板数据
view.showWork();
view.addMes(“‘进程“+(num-1)+“‘于“+new SimpleDateFormat(“hh:mm:ss“).format(work.getInDate())+“进入“+(flag+1)+“号队列
“);
if(threadNum>=maxthreadnum){//设置添加多少个进程
addThreadFlag=true;
this.stop();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}
/**
* 手动添加进程
* @param work:进程对象
*/
public void addThreadByHand(Work work){
int flag=addInSeqQueue(0 work);//把进程放入队列
if(flag
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 647168 2009-10-07 21:22 操作系统原理课程设计报告.doc
文件 8337 2009-06-30 14:26 src\math\Arithmetic.java
文件 2867 2009-06-30 14:18 src\math\SeqQueue.java
文件 1238 2009-04-25 12:06 src\math\Work.java
文件 8068 2009-07-02 14:36 src\view\ControlView.java
文件 12431 2009-07-03 13:22 src\view\View.java
文件 1937032 2009-07-03 12:32 多级反馈队列调度算法.exe
目录 0 2009-10-07 21:19 src\math
目录 0 2009-10-07 21:19 src\view
目录 0 2009-10-07 21:19 src
----------- --------- ---------- ----- ----
2617141 10
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论