页面置换FIFO算法(C#)
页面置换FIFO算法
什么是FIFO算法
FIFO算法:算法总是选择在队列中等待时间最长的页面进行置换。
使用先入先出(FIF0)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIF0队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。
FIFO的另-个缺点是,它有-种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。
优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。该算法实现
简单,只需把调入内存的页面根据先后次序链接成队列,设置-个指针总指向最
早的页面。但该算法与进程实际运行时的规律不适应,因为在进程中,有的页面
经常被访问。
该实验算法使用数组来代替队列。通过全局变量来记录当前所需要置换页面的位置。
什么是缺页率
简单的来说,就是每当页面有变动,缺页次数就加1.缺页率就是用缺页次数比上总页数*100%。
FIFO流程图
代码部分
所属类
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 页面置换算法//明宇逸风
{
class Program
{
static void Main(string[] args)
{
setting setting = new setting();
setting.Setting();
}
}
}
setting.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 页面置换算法
{
class setting
{
public void Setting()//明宇逸风
{
int n, m;