虚拟式存储管理
GDOU-B-11-112GDOU-B-11-112 广广 东东 海海 洋洋 大大 学学 学学 生生 实实 验验 报报 告告 书书 (( 学学 生生 用用 表表 )) 实验名称 学院系 学生姓名 虚拟页式存储管理 网络系 李振良 专业 课程名称计算机操作系统课程号 S1620034 信息管理与信息系统班级信管 1081 班 学号 200811622115 实验地点 科技楼 423实验日期 2010-11-15 一、一、实验目的实验目的 1 掌握虚拟存储管理的原理。 2 掌握几种常用页面置换算法。 二、二、实验原理实验原理 1.实现过程 3内存分配给进程分配一定的物理块数。 4将要页面依次调入内存,分配到物理块中。 5若物理块已满,采用算法置换出某个页面,将下一个页面调入物理块中。 2.算法 1先进先出算法(FIFO) 当发生页面置换时,总是选择当前系统中最早进入内存的那一页置换。 2最近最少使用算法(LRU ) 当发生页面置换时,选择当前内存页面中没有被使用时间最久的那一页置换出去。 三、三、LRULRU算法流程图算法流程图 第- 1 -页共 5 页 四、四、实验内容实验内容 packagepackage edward.armers.gdou; importimport java.awt.*; importimport java.awt.event.*; importimport javax.swing.*; publicpublicclassclass myReplacementextendsextends JFrameimplementsimplements ActionListener { publicpublicstaticstaticvoidvoid mainString[] args { } JTextFieldjtf1 nullnull ; JLabeljlb1 nullnull ; JLabeljlb2 nullnull ; JLabeljlb3 nullnull ; JPaneljp1 nullnull ; JPaneljp2 nullnull ; JButtonjb1 nullnull ; JButtonjb2 nullnull ; JComboBoxjcb1 nullnull ; staticstaticintintcount 0; // 下标计数 staticstaticintintorder 1; // 先进先出页框 标志 intintuse1 0; // 使用时间 intintuse2 0; intintuse3 0; intintsrc 0; // 判断是否首次使用 publicpublic myReplacement{ intint width Toolkit.getDefaultToolkit.getScreenSize.width ; intint height Toolkit.getDefaultToolkit.getScreenSize.height ; thisthis .setLocationwidth/2-200, height/2-300; thisthis .setSize300, 250; thisthis .setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;// 响应关闭 myReplacement re newnew myReplacement; thisthis .setTitle“页面置换算法 -- Designed by Edward“; thisthis .setLayoutnewnew BorderLayout;// 边界布局 jtf1 newnew JTextField;// 文本输入框 jtf1 .setText“70120304230321201701“; // 初始化 thisthis .add jtf1 ,“North“ ; thisthis .add newnew JPanel,“West“ ; jlb1 newnew JLabel“-“ ; jlb2 newnew JLabel“-“ ; jlb3 newnew JLabel“-“ ; 第- 2 -页共 5 页 jp1 newnew JPanel; jp1 .setLayoutnewnew GridLayout6,1;// 网格布局 jp1 .add jlb1 ; jp1 .add jlb2 ; jp1 .add jlb3 ; thisthis .add jp1 ,“Center“; jp2 newnew JPanel; jb1 newnew JButton“置换“; jb2 newnew JButton“清零“; String s[] {“FIFO“ ,“LRU“ }; // 先进先出/最近最久未使用 jcb1 newnew JComboBoxs;// 组合框 jb1 .addActionListenerthisthis ; // 注册监听 jb2 .addActionListenerthisthis ; jp2 .add jcb1 ; jp2 .add jb1 ; jp2 .add jb2 ; thisthis .add jp2 ,“South“ ; thisthis .setVisibletruetrue ; // 可视 } Override// 重写响应方法 publicpublicvoidvoid actionPeredActionEvent e { ifif e.getSourcejb1 {// 按下按置换 ifif jcb1 .getSelectedItem“FIFO“ { // 先进先出 String str jtf1 .getText;// 获取页面号 intint len str.length; ifif len0{// 不为空时 charchar []temp newnewcharchar [len]; forfor intint i0;i2 src ; jlb2 .setTextString.valueOf temp[ count ]; }elseelse { src ; use3 0; jlb3 .setTextString.valueOf temp[ count ]; } } } use1 ; use2 ; use3 ; // 每置换一次时间都加1 } 第- 4 -页共 5 页 } }elseelseifif e.getSourcejb2 { // 清零 jtf1 .setText“70120304230321201701“; } jlb1 .setText“-“ ; jlb2 .setText“-“ ; jlb3 .set