Linux操作系统课程设计Word文件下载.docx

上传人:b****3 文档编号:16973043 上传时间:2022-11-27 格式:DOCX 页数:9 大小:122.83KB
下载 相关 举报
Linux操作系统课程设计Word文件下载.docx_第1页
第1页 / 共9页
Linux操作系统课程设计Word文件下载.docx_第2页
第2页 / 共9页
Linux操作系统课程设计Word文件下载.docx_第3页
第3页 / 共9页
Linux操作系统课程设计Word文件下载.docx_第4页
第4页 / 共9页
Linux操作系统课程设计Word文件下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Linux操作系统课程设计Word文件下载.docx

《Linux操作系统课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《Linux操作系统课程设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。

Linux操作系统课程设计Word文件下载.docx

⑤mym[]:

物理块数组。

程序首选根据用户输入的物理块数m,初始化一个m大小的数组。

程序运行时,若物理块数还没用完就直接往数组存数,若物理块已用完就根据特定算法把特定页面置换出来,再把新进来的页面存进数组;

⑥myb[]:

计数器数组。

运用于LRU算法中,数组大小和mym[]相等,对应mym[]下标存放每个物理块最近未使用的次数。

当要置换一个新的页面进入mym[]中,根据myb[]的数值,将mym[]最近最久未使用的页面置换出来,再把新页面的位置存放到被置换页面的位置;

⑦myb[]:

记录器数组。

运用于OPT算法中,数组大小和mym[]相等,记录mym[]中数据在myt[]后续页面出现的下标值,若没有在后续页面出现,就把该下标值设为myt[]数组长度。

当要置换一个新的页面进入mym[]中,根据myb[]的数值,将mym[]中在最长(未来)时间内不再被访问的页面置换出来,再把新页面的位置存放到被置换页面的位置。

⑧m_absent:

缺页数(int)

⑨m_absentf:

缺页率(double)m_absent/n

⑩m_changef:

页面置换率(as-m)/n;

⑪m_change:

置换次数,页面从数组中置换出来的次数

(int)m_change=as-m

as置换页面数,as和m_absent数值相等,as-m等于m_change;

⑫x:

是否需要置换(boolean)true为需要置换false为不需要置换;

⑬m1:

计算物理块剩余的中间变量(int)

⑭m_list:

要显示到窗口上的内容。

迭代myt[]数组,将mym[]中排序信息保存到m_list,后面的显示。

七、程序清单

(1)界面类main.java

packagepage2;

importjava.awt.BorderLayout;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjavax.swing.*;

publicclassmain{

publicstaticvoidmain(String[]args){

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

//设置界面风格

}catch(Exceptione){

e.printStackTrace();

}

JFramemyframe=newJFrame();

myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置关闭方式

pageChangepc=newpageChange();

//实例化算法对象pageChange

JTabbedPanetab=newJTabbedPane();

//存放pageChange对象的面板

JMenuBarmb=newJMenuBar();

//菜单条

JMenumi=newJMenu("

关于我们"

);

mi.addMouseListener(newMouseAdapter(){//当点击了菜单条中关于我们的按钮以后触发的事件

publicvoidmousePressed(MouseEvente){

JOptionPane.showMessageDialog(null,"

CopyRightBy"

"

information"

JOptionPane.DEFAULT_OPTION);

}

});

mb.add(mi);

//菜单条添加菜单

tab.add("

页面置换算法"

pc);

//存放pageChange对象的面板的名字

myframe.setLayout(newBorderLayout());

//采用边框布局

myframe.add(BorderLayout.NORTH,mb);

//窗体北部添加菜单条

myframe.add(BorderLayout.CENTER,tab);

//窗体中间添加存放pageChange对象的面板

myframe.setTitle("

页面置换算法的比较"

//窗体的标题

myframe.setSize(950,700);

//设定大小

myframe.setVisible(true);

//设置窗体可见

}

}

(2)显示算法结果的面板display.java

importjava.awt.*;

publicclassdisplayViewextendsJPanel{JTextFieldtext1,text2,text3,text4;

//放缺页数、缺页率、置换次数、置换率的文本域

JPanelpan;

//缺页数、缺页率、置换次数、置换率放在p1--p4四个小面板中,再放在pan大面板中

JTextAreatextarea;

//显示三个算法结果的文本域

publicdisplayView(){

text1=newJTextField(30);

//缺页数、缺页率、置换次数、置换率的文本域的长度都为30,且不可编辑

text2=newJTextField(30);

text3=newJTextField(30);

text4=newJTextField(30);

text1.setEditable(false);

text2.setEditable(false);

text3.setEditable(false);

text4.setEditable(false);

pan=newJPanel();

pan.setLayout(newGridLayout(4,1));

FlowLayoutf=newFlowLayout();

//流布局f的对齐方式为居中

f.setAlignment(FlowLayout.CENTER);

//放缺页数、缺页率、置换次数、置换率的面板p1--p4都采用了流布局f

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp3=newJPanel();

JPanelp4=newJPanel();

p1.setLayout(f);

p2.setLayout(f);

p3.setLayout(f);

p4.setLayout(f);

p1.add(newJLabel("

缺页数"

));

//各个小面板存放的组件都是label和text

p1.add(text1);

p2.add(newJLabel("

缺页率"

p2.add(text2);

p3.add(newJLabel("

置换次数"

p3.add(text3);

p4.add(newJLabel("

置换率"

p4.add(text4);

pan.add(p1);

pan.add(p2);

pan.add(p3);

pan.add(p4);

//将四个小面板添加到大面板中

textarea=newJTextArea();

textarea.setEditable(false);

JScrollPanejp=newJScrollPane(textarea);

//将显示三个算法结果的文本域放在滚动面板中

this.setLayout(newBorderLayout());

this.add(BorderLayout.CENTER,jp);

//滚动面板放在布局中间

this.add(BorderLayout.SOUTH,pan);

//显示缺页数、缺页率、置换次数、置换率的大面板放在底部

(3)执行算法的面板pageChange.java

(关于具体的算法代码在这里没有粘贴进来,主要是界面相关的代码而已)

/**

*p1--p4分别是物理块数、置换页面数、页表长度、页面号引用串小面板

*pan1是放p1--p4的大面板

*pan2是显示算法结果的面板

*pan4是功能按钮面板,比如清除、生成随机页面号引用串

*/

JPanelpan1,pan2,pan3,pan4,p1,p2,p3,p4;

JButtonbutton1,button2,button3,clearButton,randomButton;

//FIFO、LRU、Optimal算法按钮;

清除、生成随机页面号引用串按钮

JTextFieldtext1,text2,text3,text4;

//物理块数、置换页面数、页表长度、页面号引用串文本域

Stringm_random="

"

;

//页面序列

intm,n,length;

intmyt[];

randomNumberRN;

//随机数对象

displayViewFIFOTA,LRUTA,OptTA;

//算法对象

publicvoidmisInPut(){

try{

Stringstr1,str2;

str1="

str2="

m=Integer.parseInt(text1.getText());

//物理块数

n=Integer.parseInt(text2.getText());

//置换页面数

length=Integer.parseInt(text3.getText());

//页表长度

if(m==0||n==0||length==0){

JOptionPane.showMessageDialog(this,"

请输入数字字符"

"

提示!

JOptionPane.ERROR_MESSAGE);

if(m>

n&

&

length!

=0){

输入的物理块数大于页面数或页表长度为0"

"

警告!

JOptionPane.WARNING_MESSAGE);

text1.setText("

0"

text2.setText("

text3.setText("

text4.setText("

}else{

myt=newint[n];

RN=newrandomNumber();

myt=RN.rand(n,length);

//(置换页面数,页表长度)

for(inti=0;

i<

n;

i++){

str2=String.valueOf(myt[i]);

str1=str1+"

"

+str2;

}

m_random=str1;

//产生随即页面序列

+m_random);

}catch(NumberFormatExceptionee){

JOptionPane.showMessageDialog(this,"

输入数字字符!

JOptionPane.WARNING_MESSAGE);

text1.setText("

text2.setText("

text3.setText("

text4.setText("

FIFOTA.text1.setText("

FIFOTA.text2.setText("

FIFOTA.text3.setText("

FIFOTA.text4.setText("

FIFOTA.textarea.setText(null);

LRUTA.text1.setText("

LRUTA.text2.setText("

LRUTA.text3.setText("

LRUTA.text4.setText("

LRUTA.textarea.setText(null);

OptTA.text1.setText("

OptTA.text2.setText("

OptTA.text3.setText("

OptTA.text4.setText("

OptTA.textarea.setText(null);

八、使用说明书

(1)运行以后,在下面的三个可编辑文本框中填写数字,其中,物理块数要小于置换页面数。

(2)然后点击窗体下方的按钮列的第一个Random,产生随机的页面号引用数组。

(3)接着点击按钮列的第二个按钮FIFO,运行先进先出算法;

点击按钮列的第三个按钮LRU,运行最近最久未使用算法;

点击按钮列的第四个按钮Optimal,运行最佳置换算法;

点击按钮列的第五个按钮Clear,将算法的运行结果清空。

算法的运行结果会显示在中间的文本域中:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1