操作系统最近最久未使用,最佳置换,先进先出置换

该实验报告介绍了模拟分页式虚拟存储管理的页面置换算法,包括最佳(Optimal)、先进先出(FIFO)和最近最久未使用(LRU)三种策略。实验目的是理解虚拟存储器工作原理,分析了三种算法的实现和优缺点,提供了C语言实现的代码示例。
摘要由CSDN通过智能技术生成

实验报告

 

实验题目

模拟分页式虚拟存储管理实验。

2.实验要求

编写一段程序来模拟页面置换算法。要求能分别显示最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法的置换过程。

3. 实验目的

通过本实验帮助学生理解虚拟存储器的工作方法。了解分页式存储管理里中各页面置换算法是怎样实现的,各算法有怎样的优缺点。

实验原理分析

⑴页面置换算法是在分页存储管理方式中为了合理的将进程运行所需的页面调入内存而产生的算法。一个好的页面转换算法,应具有较低的页面更换频率。最常见的页面置换算法有最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法。

⑵算法的说明

最佳置换算法:选择以后永不使用或是在最长时间内不再被访问的页面作为被淘汰的页面。这种算法通常可保证获得最低的缺页率,但因为内存中哪个页面是以后永不使用的是无法预知的,所以该算法是无法实现的。

先进先出页面置换算法:选择内存中驻留时间最长的页面作为被淘汰的页面。该算法实现简单,只需将调入内存中的页面链成一个队列,并设置一个指针指向最老的页面即可。

最近最久未使用置换算法:选择最近最久未使用的页面作为被淘汰的页面。该算法需要为每个页面设置一个访问字段用来记录页面上次被访问的时间,通过这个时间来决定淘汰哪一个页面。

⑶主要变量及函数说明如表1所示

 

表1 主要变量及函数说明表

PRA(void)

初始化

int findSpace(void)

查找是否有空闲内存

int findExist(int curpage)

查找内存中是否有该页面

int findReplace(void)

查找应予置换的页面

void display(void)

显示

void FIFO(void)

FIFO算法

void LRU(void)

LRU算法

void Optimal(void)

OPTIMAL算法

void BlockClear(void)

BLOCK恢复

struct pageInfor * block

物理块

struct pageInfor * page

页面号串

 

5.实验代码清单

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

 

struct Pro

{

       int num;        //页号

       int time;        //等待时间,LRU算法会用到这个属性

};    //作业页面集

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值