操作系统页面置换算法 ---之---FIFO置换算法、OPTIMAL置换算

本文介绍了操作系统中的三种页面置换算法:FIFO(先进先出)、OPTIMAL(最佳置换)和LRU(最近最久未使用)。FIFO算法淘汰最早进入内存的页面,OPTIMAL算法理想地选择未来永不使用的页面,而LRU算法则是根据页面的使用频率,淘汰最近最久未使用的页面。
摘要由CSDN通过智能技术生成

                                 操作系统页面置换算法

                                            ---之---

                  FIFO置换算法、OPTIMAL置换算法、LRU置换算法

        页面置换算法在内存中没有空闲页面时被调用,其目的是选出一个被淘汰的页面,把内存和外存统一管理的目的是把那些访问概率高的页面放在内存,因此,页面置换算法因该置换那些访问概率低的页面,并把它们移除内存。

        当进程产生缺页中断时,若内存已经没有空闲区域时,为了保证进程能够正常运行,系统必须依据一定的算法从内存中选择某页程序(基于请求分页存储管理方式)或数据送到磁盘的交换区,所采用的算法即是页面置换算法。

        这里简单讲到三中简单的页面置换算法:FIFO置换算法、OPTIMAL置换算法、LRU置换算法

OPTIMAL置换算法(最佳置换算法)

        最佳置换算法是一种理想化的置换算法,其置换的页面将是以后永久不使用的,或是将来很长时间内不再使用的页面(代码中置换的是引用串中较长时间不适用的页面)。它可以保证最低的缺页率。

FIFO置换算法(先进先出置换算法)

        这种算法的出发点是先装入内存的页面先被置换。其总是先淘汰那些驻留时间最长的页面。

LRU置换算法(最近最久未使用置换算法)

        该算法根据页面调入内存后的使用情况进行决策。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间T,当须淘汰一个页面时,选择现有页面中其T值最大的,即最近最久未使用的页面予以淘汰。

#include <iostream>
#define M 3  //物理块数 
#define N 20  //页面引用串长度 

using namespace std;

struct block
{
	int iPageNum;      //物理块里存储的页面号
	int iBlockFlag;		//在三种算法中用到的标记。例如在FIFO中为在内存中的时间
};
//算法模拟移位寄存器原理

void FIFO(int iTempPage[N],int flag[N],block myBlock[M]);//先进先出置换算法 
void Optimal(int iTempPage[N],int flag[N],block myBlock[M]);//最佳置换算法 
void LRU(int iTempPage[N],int fla
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值