东华大学操作系统存储管理实验报告Word格式文档下载.docx

上传人:wj 文档编号:3023474 上传时间:2023-05-01 格式:DOCX 页数:11 大小:204.22KB
下载 相关 举报
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第1页
第1页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第2页
第2页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第3页
第3页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第4页
第4页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第5页
第5页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第6页
第6页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第7页
第7页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第8页
第8页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第9页
第9页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第10页
第10页 / 共11页
东华大学操作系统存储管理实验报告Word格式文档下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

东华大学操作系统存储管理实验报告Word格式文档下载.docx

《东华大学操作系统存储管理实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《东华大学操作系统存储管理实验报告Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。

东华大学操作系统存储管理实验报告Word格式文档下载.docx

一、实验概述

1.实验目标

存储管理的主要功能之一是合理地分配空间。

请求页式管理是一种常用的虚拟存储管理技术。

本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。

2.实验要求

1)通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生成:

l50%的指令是顺序执行的;

l25%的指令是均匀分布在前地址部分。

l25%的指令是均匀分布在后地址部分。

2)将指令序列变换成页地址流

l页面大小=10条指令

l4页<

=用户内存容量<

=32页;

l用户虚存容量=32页;

l在用户虚存中,按每K存放10条指令排列虚存地址

3)计算并输出下述各种算法在不同内存容量下的命中率。

l先进先出的算法(FIFO);

l最近最少使用算法(LRU);

l最佳淘汰算法(OPT);

l命中率=1-页面失效次数/页地址流长度;

输出以表结构输出,行头是页码,列头是对应替换算法。

在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

二、实验内容

1.设计思路

总体思路:

设计存储管理类(classStorageManagemen),封装FIFO,LRU,OPT算法实现函数与各自所需公共或个体数据机构和公共代码部分,实现“TOP-DOWN”的程序设计思想,增强代码结构性和可读性。

1)先进先出的算法(FIFO):

FIFO是最简单的页置换算法,FIFO的页置换的算法为每个页记录着该页调入内存的时间。

当必须置换一页时,将选择最旧的页。

注意并不需要记录调入一页的确切时间,可以创建一个FIFO队列来管理内存中的所有页。

队列中的首页将被置换。

当需要调入页时,将它加入到队列的尾部。

FIFO的页置换算法很好理解和实现,但是,其性能并不是很好。

所替代的页可能是很久以前使用的、现已不再使用的初始化模块,另一方面,所替代的页可能包含一个以前初始化的并且不断使用的常用变量。

2)最近最少使用算法(LRU):

选择最近最长时间未访问过的页面予以淘汰,默认过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。

本实验实现算法通过为每个页面设置一个访问字段,用来记录页面自上次被访问以来所经历的时间,淘汰页面时选择现有页面中值最大的予以淘汰。

尽管各类参考书声明LRU算法为堆栈类算法,但本实验通过优先队列完全可以实现。

3)最佳淘汰算法(OPT):

最佳置换算法所选择的被淘汰页面将是以后永不使用,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。

本实验实现算法通过为每个页面设置一个CPU使用“间隔”——即表示CPU将在未处理的页面序列中第几步处理到该页面,如果页面不再被CPU处理,赋值为极大值(INT_MAX),淘汰页面时选择现有页面中值最大的予以淘汰。

本实验同LRU一样,通过优先队列实现。

2.主要数据结构

1)公共部分:

classStorageManagement:

存储管理类,封装所有算法。

uconstintMAX_OP_NUM:

操作页面最大数,默认320

uconstintMAX_MEMORY_PAGE:

用户内存存储物理块数最大值,默认32

uintPage_OP[MAX_OP_NUM]:

访问页面序列,随机生成

udoubleMiss:

每次访问相应指令时,该指令所对应的页不在内存的次数

udoubleTotal:

页面置换次数

uintTMAX_MEMEORY_PAGE:

用户内存存储物理块数

uboolisEmpty:

内存是否占满

2)先进先出的算法(FIFO):

uqueue<

int>

q:

内存存储队列,先进先出

3)最近最少使用算法(LRU):

ustructLpage:

uLpagelPage[MAX_MEMORY_PAGE]:

FIFOLRU进程页面

upriority_queue<

Lpage>

内存存储优先队列,最近使用次数大者优先级高

qq:

LRU中用于修改最近使用时间函数的临时队列

4)最佳淘汰算法(OPT):

ustructOpage:

uOpageoPage[MAX_MEMORY_PAGE]:

OPT进程页面

Opage>

内存存储优先队列,CPU使用间隔大者优先级高

OPT中用于修改使用间隔的临时队列

3.主要代码结构

uintmain():

Main函数菜单界面

uvoidInitial(intn):

用于初始化各算法参数的函数

uvoidOutput(intn):

控制输出函数

uvoidalterLateUse(priority_queue<

&

q,intPos):

LRU中用于修改内存中页面最近使用时间

ualterDist(priority_queue<

q,intn,int*Page_OP):

OPT中用于修改内存中页面使用间隔

4.主要代码段分析(加粗下划线部分为核心)

按照实验要求,随机生成320条随机数指令流,同时转换为页地址流

(分析部分见注释)

主要代码控制部分((分析部分见注释):

a)主要代码控制部分:

b)修改最近使用时间函数:

u片段1:

当待访问页面不在内存存储中,无论内存存满与否,内存中所有页面最近使用次数增加;

u片段2:

当待访问页面已在内存存储中,对应内存存储页最近使用次数清0;

b)修改CPU使用间隔函数:

当待访问页面不在内存存储中且内存已满,需要进行页面置换时,遍历未处理页面序列,找出内存中CPU永不处理页面并替换,否则替换CPU使用时间最晚(CPU使用间隔)的页面;

对于内存中CPU永不处理页面,对应CPU使用间隔赋极大值INT_MAX,实现在优先队列中优先弹出,实现页面置换;

三、实验结果

1.基本数据:

程序内随机生成。

2.源代码行数:

代码共274行。

3.完成实验投入时间:

累计共12小时

4.讨论次数:

0次

5.测试结果分析:

测试结果分析:

综上比较,帧较少时,OPT算法命中率较高。

其次是LRU。

四、实验体会

1.实验过程中遇到问题及解决过程

问题:

初次完成代码后,发现LRU算法和OPT算法命中率相同。

解决过程:

初始阶段,一直在调试OPT算法,后来通过模拟数据,调试发现LRU算法有几处Bug后,之后OPT算法根据结果调试了很久终于解决问题。

2.实验体会和收获

页面替换算法实际早在计算机组成原理课中上过,当时仅仅局限于理论理解,没有进行上机模拟,所以理解比较肤浅,故实验前着重熟悉了各置换算法的原理和实现方式。

所谓“谋定而后动”,上机实践还是遵循着程序设计=数据结构+算法的原则,成熟的算法和理想的数据结构可以使程序设计事半功倍。

在认真温习原理和设定算法后,基于算法设计数据结构,本实验中根据各置换算法不同特点,分别选用普通队列,优先队列来实现算法。

通过实践操作即加深了对于页面置换算法的深刻理解,又熟悉掌握了常用数据结构的用法。

尽管调试代码,发现bug非常煎熬(熬夜到半夜才修复所有Bug),但是最后圆满解决问题的成就感也是无与伦比的。

五、参考文献

[1].汤小丹,梁红兵等著.《计算机操作系统(第三版)》

[2].王道论坛组编. 《2013年计算机操作系统联考复习指导》

-10-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2