页面置换算法的模拟【实验报告】.doc
文本预览下载声明
实验三 页面置换算法的模拟
专业:信息管理与信息系统
学号:2014******
姓名:陈*
实验日期:2016年12月23日
实验目的
通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。
实验要求
基于一个虚拟存储区和内存工作区,设计下述算法并计算访问命中率。
1、先进先出的算法(FIFO)
2、最近最久未使用算法(LRU)
命中率=1-页面失效次数/页地址流(序列)长度
三、实验方法内容
算法设计思路(流程图)
算法中用到的数据结构
int serial[],保存要执行的序列
int block[],分配给该进程的物理块
int order[],各页面进入内存的次序
主要模块(函数名)
void print(int n,int numBlock),输出已在内存的页面,numBlock为物理块的个数
int isHave(int page,int numBlock),查找block数组,看内存中是否已存在page对应的页面
void FIFO(int numBlock),FIFO算法,numBlock为物理块的个数
void replace(int num,int n),用于LRU算法,当num页面已经在内存里面,则将其在order数组的位置换到最后
void LRU(int numBlock),LRU算法,numBlock为物理块的个数
int main(),主函数
实验结果
执行结果
在有三个物理块的内存中执行FIFO算法的结果
在有三个物理块的内存中执行LRU算法的结果
在有四个物理块的内存中执行FIFO算法的结果
在有四个物理块的内存中执行LRU算法的结果
结果分析
所获结果正确;
LRU算法的命中率高于FIFO算法,但实现比较难;
实验总结
通过《页面置换算法的模拟》这个实验,加深了对页面置换和命中率、缺页率的理解;
更加了解了FIFO算法和LRU算法
显示全部