• 大小: 6KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Java
  • 标签: 操作系统  LRU  

资源简介

页面置换算法的模拟程序。用随机数方法产生页面走向,根据页面走向,分别采用FIFO和LRU算法进行页面置换,统计缺页率。

资源截图

代码片段和文件信息

package os3;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;



class MainGUI implements ActionListener{
Jframe frame;
JLabel llengthlmemlpage;
JTextField tlengthtmemtpage;
JLabel lnull;
JLabel lmiss;
JButton bFIFObLRUbNew;
JTable table;
int lengthmempage;
DefaultTableModel tableModel;
Vector vcolumn = new Vector();
Vector vdata = new Vector();
Vector vpage = new Vector();
int break_num;
Vector vmem = new Vector();

MainGUI(){
frame = new Jframe(“页面置换算法模拟程序“);
llength = new JLabel(“页面走向长度:“);
lmem = new JLabel(“可用内存块:“);
lpage = new JLabel(“页表长度:“);
lnull = new JLabel(“   “);
tlength = new JTextField(10);
tmem = new JTextField(10);
tpage = new JTextField(10);
bFIFO = new JButton(“FIFO“);
bLRU = new JButton(“LRU“);
bNew = new JButton(“生成新页面走向“);
lmiss = new JLabel();
lmiss.setHorizontalAlignment(JLabel.CENTER);
tableModel = new DefaultTableModel(vdatavcolumn);
table = new JTable(tableModel);
JScrollPane sp = new JScrollPane(table);
frame.setLayout(new BorderLayout());
JPanel pn = new JPanel();
pn.setLayout(new GridLayout(21));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p1.add(llength);
p1.add(tlength);
p1.add(lmem);
p1.add(tmem);
p1.add(lpage);
p1.add(tpage);
p2.add(bFIFO);
p2.add(bLRU);
p2.add(bNew);
pn.add(p1);
pn.add(p2);
JPanel pnull = new JPanel();
pnull.add(lnull);
JPanel pnulll = new JPanel();
pnulll.add(lnull);
frame.add(pn BorderLayout.NORTH);
frame.add(sp BorderLayout.CENTER);
frame.add(pnull BorderLayout.WEST);
frame.add(pnulll BorderLayout.EAST);
frame.add(lmiss BorderLayout.SOUTH);
frame.setVisible(true);
frame.setSize(650 650);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(Jframe.DISPOSE_ON_CLOSE);
bFIFO.addActionListener(this);
bLRU.addActionListener(this);
bNew.addActionListener(this);

}
public void actionPerformed(ActionEvent e){
if(e.getSource() == bFIFO ){
funcFIFO();
}
if(e.getSource() == bLRU){
funcLRU();
}
if(e.getSource() == bNew){
length = Integer.parseInt(tlength.getText());
mem = Integer.parseInt(tmem.getText());
page = Integer.parseInt(tpage.getText());
vpage = new Vector();
Random random = new Random();
vcolumn.removeAllElements();
vcolumn.add(“页面访问序列“);
for(int i=0;i vcolumn.add(“   “);
}
vcolumn.add(“缺页标记“);
vdata.removeAllElements();
for(int i=0;i Integer page_num = random.nextInt(page);

评论

共有 条评论