操作系统——FIFO算法解析与代码实现

FIFO算法


概念

FIFO(First Input First Output),即先进先出队列。可以类比 我们在饭堂排队打饭,先排到队伍的最后,等待前面的人一个个打完饭再轮到下一个。这就是一种先进先出机制,先排队的人先行打饭离开。


一、解析

先进先出(FIFO)页面置换算法
该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程调入内存,按先后顺序排成一个队列,并设置一个指针,称为替换指针,使他总能指向最老的页面。但该算法与进程与实际运行的规律不相适应,效率最差。

二、代码实现

用一个结构体pb去存储引用的页面,m是代表物理模块的大小
然后在while循环里根据总的页面需求数,通过累加索性index进行逐一检查并替换
利用p进行取余来替换去对应的先进先出的原则。

#include <stdio.h>
#define PAGES 12  /*页面引用页数*/
#define M 3      /*当前分配给改作业的物理块数*/
//#define M 4
/*页面引用串*/
int  page[PAGES] =  {
   4,3,2,1,4,3,5,4,3,2,1,5};
int  rel[M][PAGES];    /*存储结果数组*/
/*内存物理块结构体*/
typedef  struct {
   
   int  pnum;      /*该块中所存的页面号*/
   int  tm ;        /*从最近一次调入所经历的时间*/
}PBlock;
/*初始化物理块数组*/
void  init(
  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值