• 大小: 17KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: Tomasulon  

资源简介

Tomasulon模拟器 供大家学习参考

资源截图

代码片段和文件信息

//请根据你的包路径修改
//package ustc.qyq;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
class node{
private int time;//这条指令需要的时间
private String op;
private String r1;
private String r2;
private String r3;
private int id;
private int barrier;//表示哪条指令让它执行不了
public void node(int i){
this.op = “1“;
this.time = 1;
this.r1 = “1“;
this.r2 = “2“;
this.r3 = “3“;
this.id = -1;
this.barrier = 0;
}
public void setNode(int id int time String op String r1 String r2 String r3){
this.op = op; 
this.r1 = r1;
this.r2 = r2;
this.r3 = r3;
this.time = time;
this.id = id;
this.barrier = -1;
}
public int getId(){
return id;
}
public void setBarrier(int barrier){//barrier是指令的id
this.barrier = barrier;
}
public int getBarrier(){
return barrier;
}
public String getOp(){
return op;
}
public String getR1(){
return r1;
}
public String  getR2(){
return r2;
}
public String getR3(){
return r3;
}
public int getTime(){
return time;
}
public void timeMinus(){
this.time -= 1;
}
}
/**
 * @author yanqing.qyq 2012-2015@USTC
 * 模板说明:该模板主要提供依赖Swing组件提供的JPanle,Jframe,JButton等提供的GUI。使用“监听器”模式监听各个Button的事件,从而根据具体事件执行不同方法。
 * Tomasulo算法核心需同学们自行完成,见说明(4)
 * 对于界面必须修改部分,见说明(1)(2)(3)
 *
 *  (1)说明:根据你的设计完善指令设置中的下拉框内容
 * (2)说明:请根据你的设计指定各个面板(指令状态,保留站,Load部件,寄存器部件)的大小
 * (3)说明:设置界面默认指令
 * (4)说明: Tomasulo算法实现
 */
//不要求写循环

public class Tomasulonew extends Jframe implements ActionListener{
/*
 * 界面上有六个面板:
 * panel1 : 指令设置
 * panel2 : 执行时间设置
 * panel3 : 指令状态
 * panel4 : 保留站状态
 * panel5 : Load部件
 * panel6 : 寄存器状态
 */
//========自己定义的=======
private int countIns[] = new int[7];
private String ins[][] = new String[7][5];
//=============
private JPanel panel1panel2panel3panel4panel5panel6;

/*
 * 四个操作按钮:步进,进5步,重置,执行
 */
private JButton stepbutstep5butresetbutstartbut;

/*
 * 指令选择框
 */
private JComboBox instbox[]=new JComboBox[24];

/*
 * 每个面板的名称
 */
private JLabel instl timel tl1tl2tl3tl4reslreglldlinslstepsl;
private int time[]=new int[4];

/*
 * 部件执行时间的输入框
 */
private JTextField tt1tt2tt3tt4;

private int intv[][]=new int[6][4]cnowinstnow=0;
private int

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2015-05-18 15:11  Tomasulonew\.classpath

     文件        387  2015-05-18 15:11  Tomasulonew\.project

     文件        598  2015-05-18 15:11  Tomasulonew\.settings\org.eclipse.jdt.core.prefs

     文件       1567  2015-05-31 20:37  Tomasulonew\bin\node.class

     文件      19399  2015-05-31 20:37  Tomasulonew\bin\Tomasulonew.class

     文件      25789  2015-05-31 20:37  Tomasulonew\src\Tomasulonew.java

     目录          0  2015-05-18 15:11  Tomasulonew\.settings

     目录          0  2015-05-25 15:46  Tomasulonew\bin

     目录          0  2015-05-18 15:12  Tomasulonew\src

     目录          0  2015-05-18 15:11  Tomasulonew

----------- ---------  ---------- -----  ----

                48041                    10


评论

共有 条评论

相关资源