操作系统:FIFO算法详解及代码演示

该博客介绍了FIFO(先进先出)页面置换算法的原理,这是一种简单的内存管理策略。文章通过C++代码展示了如何在分页式虚拟存储管理中应用FIFO算法,读取用户输入的页面号并计算缺页中断次数及缺页中断率。代码中定义了`Work`和`space`两个类,分别代表页面访问序列和物理块状态,并实现了查找、替换等操作。
摘要由CSDN通过智能技术生成

FIFO算法

FIFO算法是最简单的页面置换算法。FIFO算法为每个页面记录了调到内存的时间。当必须置换页面的时候,选择最旧的页面。
在这里插入图片描述
通俗来说,每次进入主存的时候

  • 如果主存中不存在这个页面,那么最先进入的页面出队。
  • 如果主存存在这个页面,那么内存不动。

下面是C++面向对象写法代码。
这个说明一下为什么不用容器Queue。是因为queue并没有迭代器,所以无法去寻找里面是否含有某块页面。
直接使用线性表即可,方便简单且快速。

// 在分页式虚拟存储管理中,要求通过键盘输入分配给一个作业的物理块数和作业依次访问的10个页面号,
// 采用先进先出(FIFO)页面置换后
// ,顺序输出缺页中断时所淘汰的页面号,并计算缺页中断率。
#include <iostream>

using namespace std;
#define MAX 20
class Work
{
   
public:
    void seta()
    {
   
        int c, i = 1;
        cout << "输入10个页面号,以任意符号结尾" << endl;
        cin >> c;
        a[0] = c;
        while (cin >> c)
        {
   

            a[i] = c;
            i++;
        }
    }
    void geta()
    {
   
        cout << "10个页面号分别为:  ";
        for (int i = 0; i < 10; i++)
        {
   
            cout << a[i] << 
  • 2
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeker62

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值