页面置换算法模拟程序实现实验报告

原创 2006年06月05日 17:07:00
页面置换算法模拟程序实现实验报告 
提示:本实验用java实现,在JCeaterPRO中调试成功。程序源文件有Interface.java fifo.java lru.java Page.java Interface.html。用IE打开Interface.html
 
 
目的要求:
1、通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法
2、通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。
实验内容:
编写了一个请求分页存储管理中的页面置换算法模拟程序
1、模块设计
Interface.java
实现了界面设计和调用三种不同的置换算法
Page.java
页表类,利用了链表的数据结构
Fifo.java
FIFO页面置换算法的实现
Lru.java
LRU页面置换算法的实现
 
 
2、总体设计方案:
通过界面上的文本框吸收页号数据,调用两种页面置换算法进行分析,最后数据返回给界面进行显示
 
3.程序说明:
Fifo.java中的主干函数
FIFO页面置换算法的实现
       public Page execute(String str,Page p1){
        pa=p1;
        st=str;
        k=0;
//查看页表中是否存在正在进入的页号
        for(int i=0;i<pa.pl.size();i++)
          {if(str.equalsIgnoreCase((String)pa.pl.get(i)))
            { k=1;
              break; 
             }
           }
//如果不存在,就加入页表
        if(k==0){
//页表没有满时
        if(pa.pl.size()<7)
        {
             pa.pl.add((String)st);
             pa.ptr=0;
        }
//页表满了,淘汰页面,加入页号
        else{
             lost=(String)pa.pl.remove(pa.ptr);
           pa.pl.add(pa.ptr,st);
           pa.ptr=(pa.ptr+1)%7;
        }
               }
//页号已经存在,不变动
        else lost="已装入";
        return pa;
        
       }
Lru.java中的主干函数
LRU页面置换算法的实现
public Page execute(String str,Page p1){
              pa=p1;
        st=str;
        k=0;
        for(int i=0;i<pa.pl.size();i++)
          {if(str.equalsIgnoreCase((String)pa.pl.get(i)))
            { k=1;
              break; 
             }
           }
        int x;
        if(k==0){
        if(pa.pl.size()<7)
        {
             pa.pl.add((String)st);
             con.add((String)st);
        }
        else{
             lost=(String)con.removeFirst();
             x=pa.pl.indexOf(lost);
             pa.pl.remove(lost);
           pa.pl.add(x,st);
           con.add((String)st);
        }
               }
        else
            {lost="已装入";
             x=con.indexOf((String)st);
             con.remove(x);
             con.add((String)st);}
          
        return pa;
       }
4.程序调试
IE打开Interface.html,按照要求输入任意字母或者数字的页号,点击LRU或者FIFO,注意每次输入一个页号,就要点击一次。在下面的文本框里就会显示结果
 
三:实验总结:
通过编写本实验,不仅理解了OS中页面置换算法,也锻炼java的awt编程能力,特别是布局设计和事件响应,编程过程中会遇到些小问题,可以通过各种途径解决,另外,编程之前要做好整体规划,最好写出来,把各个模块的功能和主要变量都写成文档,这样效率很高。编程是体力活,
                                                                      12/7/2005

实验五 虚拟内存页面置换算法

一、  需求分析 说明程序设计的任务和目的,明确规定下述内容: 加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。 (1)...

操作系统之——页面置换算法C语言实现

// 页面置换算法.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "stdlib.h" #include "stdio.h" #inclu...

三种页面置换算法C实现

此为操作系统课程相关实验内容,程序部分内容为模板内容,LRU与最佳置换算法内容为笔者原创,如果涉及版权问题,可留言联系,予以删除...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

操作系统实验七之内存页面置换算法实验

vmrp.h /* * Filename : vmrp.h * copyright : (C) 2006 by 张鸿烈 * Function : 声明虚拟内存页置换类 */ #include #i...

模拟LRU页面置换算法

实验二  模拟LRU页面置换算法   一、       实验目的 1)         用C或C++模拟LRU页面置换算法 2)         掌握LRU页面置换算法的调度过程 二、 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java swing实现页面置换算法模拟系统代码

原文:java swing实现页面置换算法模拟系统代码 源代码下载地址:http://www.zuidaima.com/share/1822243586837504.htm 页面置...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:页面置换算法模拟程序实现实验报告
举报原因:
原因补充:

(最多只允许输入30个字)