操作系统进程调度仿真程序源码(3)

2019-08-31 15:10

String st=new String();

int lastT=(Integer)temp1.get(4); if(lastT==0){

Date startTime=new Date(); pro.inputStartTime(startTime);

st=pro.getStartTime(); }

else{

st=pro.getStartTime(); }

// pro.inputStartTime(startTime); // st=pro.getStartTime();

temp1.insertElementAt(st,4);

runData.clear(); runData.addElement(temp1); }

else{

// JOptionPane.showMessageDialog(null, \就绪队列为空,运行结束!\\注意\ } }

public void addreadyData(){ try{

if(item.equals(\先来先服务算法\ readyData.clear();

for(int i=0;i

readyData.add(FCFS.get(i)); } }

else if(item.equals(\静态优先级调度算法\ readyData.clear();

for(int i=0;i

} }

else if(item.equals(\动态优先级调度算法\ readyData.clear();

for(int i=0;i

}

else if(item.equals(\最短作业优先算法\ readyData.clear();

for(int i=0;i

readyData.add(SJF.get(i)); } }

else if(item.equals(\最短剩余时间优先算法\ readyData.clear();

for(int i=0;i

}catch(NullPointerException m){ System.out.println(\ } }

//-------------------------------------------------------------------

public class ThreadRunning extends Thread{ //主线程操作 @SuppressWarnings(\ public void run(){ try{

while(true) {

Vector temp2=new Vector(); while(runData.isEmpty()){ addrunData(); }

temp2=(Vector)runData.get(0); while(!active); //暂停处理 sleep(900);

Integer r=(Integer)temp2.get(3); Integer n=(Integer)temp2.get(5); if(n>=r){

String ft=new String();

Integer ide=(Integer)temp2.get(0); Date finishTime=new Date(); PCB proc;

proc=(PCB)allData.get(ide); proc.inputFinishTime(finishTime); ft=proc.getFinishTime();

Double pt=new Double(proc.getPerTime()); temp2.setElementAt(ft,5); temp2.addElement(pt);

finishData.addElement(temp2); runData.clear();

addrunData();

}

else if(stop){ //阻塞处理 waitData.add(temp2); runData.clear(); addrunData(); stop=false; }

else{

if(item.equals(\最短剩余时间优先算法\ if(readyData.isEmpty()){ n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } else{

Vector rd=new Vector(); rd=(Vector)readyData.get(0);

int sx=(Integer)rd.get(3)-(Integer)rd.get(4); if(sx<(r-n)){

temp2.removeElementAt(4); FCFS.add(temp2); operation(); addrunData(); } else{

n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } }

}

else if(item.equals(\静态优先级调度算法\ if(readyData.isEmpty()){ n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } else{

Vector rd=new Vector(); rd=(Vector)readyData.get(0); int py=(Integer)rd.get(1);

int pty=(Integer)temp2.get(1); if(pty

temp2.removeElementAt(4); FCFS.add(temp2); operation(); addrunData(); } else{

n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } }

}

else if(item.equals(\动态优先级调度算法\ int pty=(Integer)temp2.get(1); if(readyData.isEmpty()){ if(n==0&&n!=0){ if(pty>1){ pty--;

temp2.setElementAt(pty,1); } } n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } else{

if(n==0&&n!=0){ if(pty>1){

pty--;

temp2.setElementAt(pty,1); } Vector tempx=new Vector(); for(int i=0;i

tempx.setElementAt(pp,1); FCFS.setElementAt(tempx,i); }

}

operation(); }

else{}; Vector rd=new Vector(); rd=(Vector)readyData.get(0); pty=(Integer)temp2.get(1); int py=(Integer)rd.get(1); if(pty

temp2.setElementAt(n,5); temp2.removeElementAt(4); FCFS.add(temp2); operation(); addrunData(); }

else{

n++;

temp2.setElementAt(n,5); runData.clear(); runData.add(temp2); } } } else{

n++;

temp2.setElementAt(n,5); runData.clear();

runData.add(temp2); }

} }

}catch(InterruptedException e) { e.printStackTrace(); } } }

//--------------------------------------------------------------------------------------------------------- public class Looking extends Thread{ //监视程序 public void run(){ try{

while(true) {

addreadyData(); //时刻监视就绪队列动静


操作系统进程调度仿真程序源码(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

Copyright © 2019-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18

× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: