FIFO算法
package studyJava;
class FIFO{
/*
* 先进先出算法
* N:内存块的个数
* array:内存块
* size:页面数目
* */
private static final int N=3;
private int size;
Object[] array=new Object[N];
public boolean isEmpty(){
if(size==0)
return true;
else
return false;
}
//
public boolean isFully(){
if(size>=N)
return true;
else
return false;
}
/*
* 页面数目
* */
public int size(){
return size;
}
/*
* 查找元素O在数组array中的位置
* */
public int indexOfElement(Object o){
for(int i=0;i<N;i++){
if(array[i]==o)
return i;
}
return -1;//否则o不在array中
}
/*
* 页面转换
* */
public Object trans(Object o){
Object e=null;
int t=0;
if(indexOfElement(o)!=-1){
t=indexOfElement(o);
for (int i = t; i < size-1; i++) {
array[i]=array[i+1];
}
array[size-1]=o;
}else{
if(!isFully()){
array[size]=o;
size++;
}else{
for (int i = 0; i < size-1; i++) {
array[i]=array[i+1];
}
array[size-1]=o;
}
}
if(t==-1)
return null;
else
return array[t];
}
/*
* 输出内存块中的各数据
* */
public void showMemoryBlock(){
for (int i = 0; i < size; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
}
}
public class Main{
public static void main(String[] args) {
Integer[] in={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
FIFO fifo=new FIFO();
for(int i=0; i<in.length; i++) {
fifo.trans(in[i]);
fifo.showMemoryBlock();
}
}
}
FIFO算法的更多相关文章
- 页置换算法FIFO、LRU、OPT
页置换算法FIFO.LRU.OPT 为什么需要页置换 在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断.当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调 ...
- 操作系统页面置换算法(opt,lru,fifo,clock)实现
选择调出页面的算法就称为页面置换算法.好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出. 常见的置换算法有以下四种(以下来自操作系统课本). ...
- 操作系统 页面置换算法LRU和FIFO
LRU(Least Recently Used)最少使用页面置换算法,顾名思义,就是替换掉最少使用的页面. FIFO(first in first out,先进先出)页面置换算法,这是的最早出现的置换 ...
- (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)
目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...
- 页面置换算法 - FIFO、LFU、LRU
缓存算法(页面置换算法)-FIFO. LFU. LRU 在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO. LFU ...
- 缓存算法(页面置换算法)-FIFO、LFU、LRU
在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO.LFU 1.FIFO算法 FIFO(First in First ...
- FIFO、LRU、OPT这三种置换算法的缺页次数
考虑下述页面走向: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 当内存块数量分别为3时,试问FIFO.LRU.OPT这三种置换算法的缺页次数各是多少? 答:缺页定义 ...
- 操作系统的页面置换C++算法:OPT FIFO LRU CLOCK 计算缺页率
暴力直接上代码,主要是用了vector来实现,有些方法比較费时,不太好,请各位大神斧正.这是个人的作业, 这是代码下载页http://download.csdn.net/detail/l631068 ...
- 【转】缓存淘汰算法系列之3——FIFO类
原文地址:http://www.360doc.com/content/13/0805/16/13247663_304923435.shtml 1 FIFO 1.1. 原理 按照“先进先出(First ...
随机推荐
- java-随学随记之基础篇
一.Java是一门高级语言,具有跨平台性(一次编译到处运行) 1.javac.exe命令,编译器 javac 源文件名.java 2.java.exe命令,启动虚拟机 java 类名 二.环境变量 ...
- Java并发编程之volatile变量
volatile提供了弱同步机制,用来确保将变量更新通知到其它线程.volatile变量不会被缓存在寄存器中或者对其它处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值.可以想象 ...
- Linq to DataSet 和 DataSet使用方法学习
简单入门: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy ...
- 从汇编看c++多重继承中this指针的变化
先来看一下下面的c++源码: #include <iostream> using namespace std; class X { public: virtual void print1( ...
- UVA 12563 Jin Ge Jin Qu hao
dp-背包 开始用普通dp写了一发发现没法确定最大时间... 后来看到大牛机智的写法,嗯...dp表示当前状态能否成立:然后从条件最好的状态开始遍历,直到这个状态成立然后退出遍历. 具体的看代码吧.. ...
- ORA-01653:表无法通过64(在表空间USERS中)扩展
问题描述:oracle插入数据时显示ORA-01653 表无法通过64(在表空间USERS中)扩展 原因: oracle 表空间满了,需要扩展 截图: 解决方法: 1.首先查下表空间 select ...
- 由EmbeddedFileProvider构建的内嵌(资源)文件系统
由EmbeddedFileProvider构建的内嵌(资源)文件系统 一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取 ...
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
Azure作为微软的公有云平台,提供了非常丰富的SDK和API让开发人员可以非常方便的调用的各项服务,目前除了自家的.NET, Java, Python, nodeJS, Ruby,PHP等语言都提供 ...
- Ubuntu10.4 Install DB2V9.5
1. Download the DB2V9.5 Software from URL: http://www14.software.ibm.com/webapp/download/search.jsp ...
- Rule Or WorkFlow
The main value of a Workflow engine is that it makes it possible to customize the flows through some ...