页面调度算法——FIFO
2016-06-15 21:02
176 查看
在计算机中,页式虚拟存储器实现的一个难点是设计页面调度(置换)算法。其中一种实现方式是FIFO算法。
FIFO算法根据页面进入内存的时间先后选择淘汰页面,先进入内存的页面先淘汰,后进入内存的后淘汰。
假设Cache的大小为2,有5个页面请求,分别为 2 1 2 3 1,则Cache的状态转换为:(2)->(2,1)->(2,1)->(1,3)->(1,3),其中第1,2,4次缺页,总缺页次数为3。
现在给出Cache的大小n和m个页面请求,请算出缺页数。
package demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo0615_2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
while(s.hasNext()){
int space=s.nextInt();
int n=s.nextInt();
ArrayList<Integer> list=new ArrayList<Integer>();
int res=0;
for(int i=0;i<n;i++){
int temp=s.nextInt();
if(list.contains(temp))
continue;
else{
res++;
list.add(temp);
}
if(list.size()>space)
list.remove(0);
}
System.out.println(res);
}
}
}
FIFO算法根据页面进入内存的时间先后选择淘汰页面,先进入内存的页面先淘汰,后进入内存的后淘汰。
假设Cache的大小为2,有5个页面请求,分别为 2 1 2 3 1,则Cache的状态转换为:(2)->(2,1)->(2,1)->(1,3)->(1,3),其中第1,2,4次缺页,总缺页次数为3。
现在给出Cache的大小n和m个页面请求,请算出缺页数。
package demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo0615_2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
while(s.hasNext()){
int space=s.nextInt();
int n=s.nextInt();
ArrayList<Integer> list=new ArrayList<Integer>();
int res=0;
for(int i=0;i<n;i++){
int temp=s.nextInt();
if(list.contains(temp))
continue;
else{
res++;
list.add(temp);
}
if(list.size()>space)
list.remove(0);
}
System.out.println(res);
}
}
}
相关文章推荐
- Ajax简介
- Android Studio 问题汇总目录
- 常用的日期格式
- 用MVVM做了一个保存网页的工具-上篇
- BFS
- 349. Intersection of Two Arrays
- 详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
- Python 文件和目录的操作
- 腾讯云一键搭建WordPress博客网站
- TeX系列: tikz-3dplot绘图宏包
- 修改win10和ubuntu17.10双系统启动顺序
- Java记事
- 数据库案例中创建连接池以及连接
- TeX系列: MATLAB和LaTeX结合绘图
- Android中Intent介绍
- opencv 处理视频并使用Qt窗口作为输出
- MySQL数据库引擎详细介绍
- C#实现的 快速查找通用组件 YHSoft.QuickFind
- [Shell]date获取指定日期的后几天
- android进程重启及activity恢复