赞
踩
操作系统是我们软件工程系学生所要学习的重要学科,操作系统对计算机系统资源的整合与管理也是具有举足轻重的作用,是所有软件与计算机硬件的唯一接口,所有的用户在使用计算机时都会得到操作系统提供的便捷服务。为了了解内存分页管理策略模拟实现了先进先出置换算法(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;//返回物理块 > } > }
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); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。