資源簡介
LRU頁面置換算法 操作系統 大作業 鄭州大學軟件學院 含有詳細注釋
代碼片段和文件信息
/*
?*?頁面置換算法-最近最久未使用
?*?autour:09軟開java?牛海燕?20097760437
?*/
package?com.pageReplaceAlgorithms;
import?java.awt.BorderLayout;
import?java.awt.Container;
import?java.awt.FlowLayout;
import?java.awt.Font;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.util.linkedList;
import?java.util.Queue;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
import?javax.swing.JTextField;
@SuppressWarnings(“serial“)
public?class?LRU?extends?Jframe{
private?static?String?message?=?““;
private?JTextField?jtf1?=?new?JTextField(35);
private?JTextField?jtf2?=?new?JTextField(5);
private?JTextArea?jta?=?new?JTextArea();
public?LRU()
{
super(“?LRU算法模擬?“);
JLabel?jl1?=?new?JLabel(“將要引用的頁面號(以空格分隔):“);
JLabel?jl2?=?new?JLabel(“系統為進程分配的物理塊數:“);
JButton?jbtn?=?new?JButton(“執行“);
setBounds(200100?1000?600);
Font?f=new?Font(“微軟雅黑“Font.BOLD16);
jta.setFont(f);
Font?f2=new?Font(“微軟雅黑“Font.BOLD14);
jtf1.setFont(f2);
jtf2.setFont(f2);
jbtn.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
int?interruptCount=0;
message?=?““;
jta.setText(““);
String?pages?=?jtf1.getText();
String?pageArrayStr[]?=?pages.split(“?“);
int?pageArray[]=new?int[pageArrayStr.length];//將要引用的頁面號
for(int?i=0;i {
pageArray[i]=Integer.parseInt(pageArrayStr[i]);
}
int?physicalBlockSize=Integer.parseInt(jtf2.getText());//系統為進程分配的物理塊數
Queue?memoryQueue=new?linkedList();
if(physicalBlockSize>=pageArray.length)??//分配的內存塊大于需求的內存塊數,用不完,不用替換,命中時不用調整隊列
{
for(int?i=0;i {
boolean?isIn=false;
for(int?mem:memoryQueue)
{
if(mem==pageArray[i])
{
message+=“命中:“+pageArray[i]+“\n“;
isIn=true;
break;
}
}
if(!isIn)
{
memoryQueue.add(pageArray[i]); //入隊操作
message+=“裝入:“+pageArray[i]+“\n“;
interruptCount++;
}
}
message+=“中斷次數:“+interruptCount+“\n“;
return;
評論
共有 條評論