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

2019-08-31 15:10

// interrupted.setRowHeight(30); jsp2=new JScrollPane();

jsp2.setViewportView(interrupted); jsp2.setBounds(50,425,700,40); c.add(jsp2);

jl7=new JLabel(\完成队列:\ jl7.setForeground(Color.red); jl7.setBounds(50,480,70,20);

c.add(jl7);

//---------------------------------------完成队列JTable

String name4[]={\进程ID\优先级\提交时间\运行总耗时\开始时间\完成时间\带权周转时间\ nm4=new Vector();

for(int column=0;column

}

finish=new MTable(finishData,nm4);

// finish.setPreferredScrollableViewportSize(new Dimension(500,120)); // finish.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

finish.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); finish.setSelectionBackground(Color.yellow); finish.setSelectionForeground(Color.red); // finish.setRowHeight(30); jsp3=new JScrollPane(); jsp3.setViewportView(finish); jsp3.setBounds(50,505,700,100); c.add(jsp3);

save=new JButton(\保存结果\ save.setBounds(250,620,100,25); c.add(save);

save.addActionListener(this); exit=new JButton(\退出系统\ exit.setBounds(400,620,100,25); c.add(exit);

exit.addActionListener(this); c.setVisible(true); frame.setVisible(true);

new //线程启动

new Looking().start(); }

ThreadRunning().start();

public int outputruntime(){ //从输入框获取运行时间

String s=tm.getText(); int rt;

if(s.trim().length()==0) return 0; else{ try{

rt=Integer.parseInt(s); return rt;

}catch(NumberFormatException e){

System.out.println(\您没有输入数值数据!\ return 0; } } }

public String outputStart(){ String str=start.getText();

return str; }

class ModeChoice implements ItemListener{ //进程调度模式 public void itemStateChanged(ItemEvent e){ item=e.getItem().toString(); } }

@SuppressWarnings(\ public void operation(){ //优先级排列算法 Vector up=new Vector(); Vector temp=new Vector(); Vector bridge=new Vector(); Vector cloneData=new Vector(); int max,maxp,midp; cloneData=(Vector)RR.clone(); for(int i=0;i

for(int j=1;j

temp=(Vector)cloneData.get(j); midp=(Integer)temp.get(1); if(maxp>midp){ max=j;

maxp=midp; } }

up=(Vector)cloneData.get(max); bridge=(Vector)cloneData.get(cloneData.size()-i-1); cloneData.setElementAt(up,cloneData.size()-i-1); cloneData.setElementAt(bridge,max); }

DRR=cloneData;

MLFQ=cloneData; }

@SuppressWarnings(\ public void findKing(){ //定时启动进程处理模块 Vector find=new Vector(); String staT=new String(); for(int i=0;i

Date now=new Date();

String nowT=String.format(\

if((staT.compareTo(nowT))<=0){ if(Unstop){

waitData.add(find);

RR.removeElementAt(i); }else{

int idN=(Integer)find.get(0); king=idN; } } } } }

@SuppressWarnings(\ public void addrunData(){ //将就绪队列中的进程加入当前进程

Vector temp1=new Vector(); Vector tp=new Vector();

boolean exist=false;

String isNull=new String(); try{

for(int i=0;i

}catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(); } if(exist){

// temp1=readyData1.ElementAt(0); // temp1=readyData1.firstElement();

// temp1=readyData1.get(0); for(int i=0;i

readyData1.removeElementAt(i); break; }

}

for(int i=0;i

Integer ide=(Integer)temp1.get(0); for(int i=0;i

tp=(Vector)RR.get(i); Integer iden=(Integer)tp.get(0); if(iden==ide){

RR.removeElementAt(i); operation(); break; } }

PCB pro=new PCB();

if(allData.get(ide) instanceof PCB){ pro=(PCB)allData.get(ide);

//三种获取元素的方法 }

int allT=pro.getRunTime(); String st=new String();

int lastT=(Integer)temp1.get(3); if(allT==lastT){

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

st=pro.getStartTime(); } else{

st=pro.getStartTime(); }

temp1.setElementAt(st,4); int prio=(Integer)temp1.get(1); Integer c=new Integer(0); temp1.addElement(c);

Integer pic;

if(item.equals(\静态时间片轮转法\ pic=new Integer(15); } else{

pic=new Integer(60-(prio*5)); }

temp1.addElement(pic);

runData.clear(); runData.addElement(temp1); flag=1;

}

else if(readyData2.size()!=0){ Vector temp2=new Vector(); temp2=(Vector)readyData2.get(0); readyData2.removeElementAt(0); Integer c=new Integer(0); temp2.addElement(c); Integer pic;

pic=new Integer(30); temp2.addElement(pic); runData.clear();

runData.addElement(temp2); flag=2; }

else if(readyData3.size()!=0){ Vector temp3=new Vector(); temp3=(Vector)readyData3.get(0);


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

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

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

马上注册会员

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