当前位置:   article > 正文

虚拟存储器管理(页面置换算法模拟)_存储管理页面置换算法页面依次淘汰的页是多少

存储管理页面置换算法页面依次淘汰的页是多少

虚拟存储器管理(页面置换算法模拟)

操作系统是我们软件工程系学生所要学习的重要学科,操作系统对计算机系统资源的整合与管理也是具有举足轻重的作用,是所有软件与计算机硬件的唯一接口,所有的用户在使用计算机时都会得到操作系统提供的便捷服务。为了了解内存分页管理策略模拟实现了先进先出置换算法(FIFO)。


模拟实现存储器页面替换策略算法

先进先出置换算法(FIFO):该算法淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
(1)假设现在有一个请求队列:1,2,3,4,1,2,5,1,2,3,4,5
(2)内存块容量为3个

设计算法思路
当请求的内存页不在缓存中。且缓存已满时,应从缓存中删除保存时间最长的页面,从而为请求页面腾出空间,如果缓存未满,可直接将请求页面添加到缓存中,给定的页面最多只应在缓存中出现一次。
(1)创建一个长度为3的集合,其功能相当于有三个内存空间
ArrayList block = new ArrayList(3);
(2)声明数组存放请求队列
Integer[] data

源程序代码

> 
> 
> import java.util.ArrayList; //页置换策略—先进先出算法(FIFO) public class Fof {
> 	public ArrayList block = new ArrayList(3);//创建一个长度为3的集合,其功能相当于有三个块
>   
>     /** 将访问页添加块中 **/
>     public ArrayList put(Integer data){
>         //判断物理块里面的数据是否大于三个
>         if (block.size() < 3){
>             for(int i = 0;i < block.size();i++) {
>                 if (block.get(i) == data) { 
>                     System.out.print("这个没有中断----");                  
>                 }
>             }
>             block.add(data);//不在在情况下,将形式参数的值添加到物理块集合中
>         }else {
>             for(int i = 0;i < block.size();i++) {
>                 if (block.get(i) == data) {//存在,当前数据存在物理块中,表示没有中断
>                     System.out.print("这个没有中断----");                  
>                     return block;//直接返回原来的物理块,不做任何处理
>                 }
>             }
>             block.remove(0);//将物理块集合首个元素移除
>             block.add(data);//将新的添加到末尾
>         }
>         return block;//返回物理块
>     }
>      }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
public class Arithmetic {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 //1,2,3,4,1,2,5,1,2,3,4,5
		 Integer[] data = {new Integer(1),
				           new Integer(2),
				           new Integer(3),
				           new Integer(4),
				           new Integer(1),
				           new Integer(2),
				           new Integer(5),
				           new Integer(1),
				           new Integer(2),
				           new Integer(3),
				           new Integer(4),
				           new Integer(5)};
         Fof f=new Fof();            
         for(int i = 0;i < data.length;i++) {
             System.out.println(data[i]+"------>"+f.put(data[i]));
         }
         System.out.println("-------------------------------");
         System.out.println("访问顺序总的次数为:"+data.length);  
       
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/163421?site
推荐阅读
相关标签
  

闽ICP备14008679号