操作系统-请求页式存储管理实验报告分析解析.doc

操作系统-请求页式存储管理实验报告分析解析.doc

ID:54974912

大小:272.50 KB

页数:12页

时间:2020-04-25

操作系统-请求页式存储管理实验报告分析解析.doc_第1页
操作系统-请求页式存储管理实验报告分析解析.doc_第2页
操作系统-请求页式存储管理实验报告分析解析.doc_第3页
操作系统-请求页式存储管理实验报告分析解析.doc_第4页
操作系统-请求页式存储管理实验报告分析解析.doc_第5页
资源描述:

《操作系统-请求页式存储管理实验报告分析解析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统实验三存储管理实验班级:学号:姓名:目录1.实验目的22.实验内容2(1)通过随机数产生一个指令序列,共320条指令2(2)将指令序列变换成为页地址流2(3)计算并输出下述各种算法在不同内存容量下的命中率23.随机数产生办法3环境说明34.程序设计说明34.1.全局变量34.2.随机指令序列的产生44.3.FIFO算法44.4.LRU算法44.5.OPT算法55.编程实现(源程序):56.运行结果及分析116.1.运行(以某两次运行结果为例,列表如下:)116.2.Belady’sanomaly11111.实验目的存储管理的主要功能之一是合理地分配空间。请求页式管理

2、是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2.实验内容(1)通过随机数产生一个指令序列,共320条指令指令的地址按下述原则生成:a)50%的指令是顺序执行的;b)25%的指令是均匀分布在前地址部分;c)25%的指令是均匀分布在后地址部分;具体的实施方法是:a)在[0,319]的指令地址之间随机选取一起点m;b)顺序执行一条指令,即执行地址为m+1的指令;c)在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m¢;d)顺序执行一条指令,其地址为m¢+1;e)在

3、后地址[m¢+2,319]中随机选取一条指令并执行;f)重复上述步骤a)~f),直到执行320次指令。(2)将指令序列变换成为页地址流设:a)页面大小为1K;b)用户内存容量为4页到32页;c)用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应虚存地址为[0,9]);第10条~第19条指令为第1页(对应虚存地址为[10,19]);……第310条~第319条指令为第31页(对应虚存地址为[310,319])。按以上方式,用户指令可以组成32页。(3)计算并输出下述各种算法在不同内存容量下的

4、命中率a)先进先出的算法(FIFO);b)最近最少使用算法(LRU);c)最佳淘汰算法(OPT);11命中率=1-页面失效次数/页地址流长度在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。1.随机数产生办法关于随机数产生办法,可以采用操作系统提供的函数,如Linux或UNIX系统提供函数srand()和rand(),分别进行初始化和产生随机数。例如:srand();语句可以初始化一个随机数;a[0]=10*rand()/32767*319+1;a[1]=10*rand()/32767*a[0];…语句可以用来产生a[0]与

5、a[1]中的随机数。环境说明此实验采用的是Win7下Code::blocks10.05编译器编程。此word实验文档中采用notepad++的语法高亮。2.程序设计说明2.1.全局变量constintmaxn=320;//序列个数constintmax=maxn+20;//数组大小constintmaxp=max/10;//最大页数intinst[max];//指令序列intpage[max];//页地址流intsize;//内存能容纳的页数boolin[maxp];//该页是否在内存里,提高效率intpin[maxp];//现在在内存里的页其中in[]数组是为了方便直接判

6、断该页是否在内存里,而不用遍历内存里所有页来判断。fault_n用来记录缺页次数。111.1.随机指令序列的产生按照实验要求的写了,但是由于没有考虑细节,开始时出了点问题。(1)当m=319时,我们顺序执行m+1会产生第32页的页地址,从而使页地址没能按要求限制在[0,31]之间。解决方法:采用循环模加来避免超出范围。(2)但是这样之后有可能出现模0的问题。所以我索性将等于0的模数都赋值为160.最后的程序如下。voidproduce_inst(){intm,n;intnum=0;while(num

7、%maxn;if(num==maxn)break;m=(m+2)%maxn;if(m==0)m=160;n=rand()%m;inst[num++]=(n+1)%maxn;if(num==maxn)break;n=(n+2)%maxn;m=maxn-n;if(m==0)m=160;m=rand()%m+n;inst[num++]=m;}}1.2.FIFO算法定义变量ptr。一开始先预调页填满内存。在这一部分,ptr指向下一个要存放的位置。之后继续执行剩下的指令。此时,ptr表示队列最前面的位置,即最先进来的位置,也

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。