好文档 - 专业文书写作范文服务资料分享网站

实验六 请求分页存储管理

天下 分享 时间: 加入收藏 我要投稿 点赞

实验六 请求分页存储管理

实验六:请求分页存储管理

一.实验目的

深入理解请求页式存储管理的基本概念和实现方法,重点认识其中的地址变换、缺页中断、置换算法等实现思想。 二.实验属性

该实验为综合性、设计性实验。 三.实验仪器设备及器材

普通PC386以上微机 四.实验要求

本实验要求2学时完成。 本实验要求完成如下任务:

(1) 建立相关的数据结构:页表、页表寄存器、存储块表等;

(2) 指定分配给进程的内存物理块数,设定进程的页面访问顺序; (3) 设计页面置换算法,可以选择OPT、FIFO、LRU等,并计算相应的缺页率,以比较它们的优劣;

(4) 编写地址转换函数,实现通过查找页表完成逻辑地址到物理地址的转换;若发生缺页则选择某种置换算法(OPT、FIFO、LRU等)完成页面的交换;

(5) 将整个过程可视化显示出来。

实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写并完成预习报告、实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告(参见附录A),并要求用正规的实验报告纸和封面装订整齐,按时上交。

三、设计过程 3.1算法原理分析

OPT算法是未来最远出现,当当前内存中没有正要访问的页面时,置换出当前页面中在未来的访问页中最远出现的页面或再也不出现的页面。

FIFO算法是先进先出,当当前内存中没有正要访问的页面时,置换出最先进来的页面。

LRU算法是最近最久未使用,当当前内存中没有正要访问的页面时,置换出在当前页面中最近最久没有使用的页面。 3.2数据定义

int length,num_page,count,seed; //length记录访问串的长度,num_page页面

数,count记录缺页次数

int result[20][30],order[30],a[10]; //result记录结果,order存储访问串,a存储

当前页面中的值

1 / 7

实验六 请求分页存储管理

int pos1,flag1,flag2,flag3; //pos1位置变量,flag1等为标志变量 char result1[30]; //记录缺页数组 void opt() //最佳 void fifo() //先进先出

bool search(int n) //查找当前内存中是否已存在该页 3.3流程图与运行截图

开始 得到执行的指令 指令是否在内存中 是 是 下面是否还有指令 最先存入指否 令被淘汰得出命中率 否 结束

图6.1 FIFO()函数流程图;

2 / 7

实验六 请求分页存储管理

开始 输入内存中分配页据第一个访问页初始化第一列值 还有请求访问页? 是 直接复制前一列内容 是 内存中是否已存否 否 内存有空页? 是 直接插入 替换内存中将来不出现或离当前最输出全部页面变否 结束

图2.2 OPT算法流程图

3 / 7

实验六 请求分页存储管理

四、小结

本次课程设计目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。要求设计随机页面产生程序,并说明随机的性能和其性能可能对算法的影响,对随机性要有一定的参数控制能力;计算并输出FIFO及LRU算法在不同内存容量下的命中率。

由于上学期做过页面置换的实验,内容包括先进先出算法(FIFO)、最近最久未使用页面置换算法(LRU)和理想淘汰算法(OPT),3种算法思想简单明确,选好数据结构,思路清晰便基本没问题了。所以相对来说,这次操作系统的课程设计容易许多,只是在之前实验基础上,要附加设计随机页面产生程序,对随机性要有一定的参数控制能力。对于随机页面产生程序,我们之前没做过,在网上查阅资料,使用了库函数srand()和rand(),实现了简单的随机页面产生程序,功能基本完成。我们知识所限,没有使用漂亮可视化界面编程实现功能,用简单的C语言编程实现的。不管怎么样,最终还是实现的本次课程设计要求的。 五、源程序

#include #include using namespace std;

int length,num_page,count,seed; int result[20][30],order[30],a[10]; int pos1,flag1,flag2,flag3; char result1[30]; void init()

{ memset(a,-1,sizeof(a)); int i; cout<<\输入访问串的长度:\cin>>length; cout<<\输入种子数控制产生的随机值:\cin>>seed; srand(seed); cout<<\产生的随机访问串:\ for(i=0;i

cout<<\输入页面的个数:\cin>>num_page; }

void print()

{ int i,j; cout<<\表示缺页\

4 / 7

实验六 请求分页存储管理

for( j=0;j

bool search(int n) //查找当期内存是否已存在 { int i; for(i=0;i

void opt() //最佳

{ int i,pos[10],flag[10]; while(1) { flag1=flag2=0; for(i=0;i

5 / 7

实验六 请求分页存储管理

实验六请求分页存储管理实验六:请求分页存储管理一.实验目的深入理解请求页式存储管理的基本概念和实现方法,重点认识其中的地址变换、缺页中断、置换算法等实现思想。二.实验属性该实验为综合性、设计性实验。三.实验仪器设备及器材普通PC386以上微机四.实验要求本实验要求2学时完成。本实验要求完
推荐度:
点击下载文档文档为doc格式
0plk56gmo38c83h0epna2cg5h8ins2016gh
领取福利

微信扫码领取福利

微信扫码分享