[关闭]
@yanbo01haomiao 2021-05-17T17:11:18.000000Z 字数 1418 阅读 856

实验四 存储管理

Linux


一、 实验目标

请求页式管理是一种常用的虚拟存储管理技术,本实验的目的是通过模拟请求页式存储管理中的页面替换算法,了解虚拟存储技术的特点,感性认识操作系统对内存的管理。

二、 实验内容

设计一个虚拟存储区和内存工作区,并使用下述页面替换算法计算页面访问的命中率。

其中,命中率=页面命中次数/页地址流长度,或者命中率=1-页面失效次数/页地址流长度。

1. 先进先出算法(FIFO)
2. 最近最少使用算法(LRU)
3. optimal算法(可选)

注:第三个算法在实际场景中无法使用,因为无法获得页地址流。但是在仿真模拟过程中是必要的,定义为:在已知全部页地址流情况下做出的最优调度策略,使得命中率最高并且替换少,做为算法1,2的baseline使用。

三、实验要求

本实验要求编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。同时实现optimal最优调度来作为baseline进行结果对比。

其中虚页的个数可以事先给定,对这些虚页访问的页地址流(其长度可以事先给定,例如30次虚页访问)可以由程序随机产生。

注:为了方便检查正确性,本次实验的页地址流由固定种子产生。

要求程序运行时屏幕能显示出置换过程中的【状态信息】并输出访问结束时的【页面命中率】。例如:

  1. The data input is: [长度给定的虚页访问页地址流]
  2. when cache size is : [cache大小,最少测试3-4cache大小,且一般为2-5]
  3. The hit rate of [AlgorithmName] is : [命中率]
  4. The output in [AlgorithmName] is : [页面从cache中置换出去的状态信息,-1表示首次置入cache或者命中,对应地址数值表示从cache中置换出去的页面地址]

程序应允许为该进程分配不同的实页数和cache大小,来比较两种置换算法的稳定性。为测试结果具有普适性,请在完成编码后使用不少于5组给定的种子来验证算法的正确性并比较命中率。

四、参考代码

本实验中为同学们提供了框架代码来保证无基础语法和编译错误。选择语言:C / C++,实验平台:Linux。

本实验部分框架代码已经书写并放在仓库ex4/中并配有说明,请阅读框架代码后再进行编程。


操作系统实验手册与实验报告模板:
本实验部分框架代码已经书写并放在仓库ex4/中并配有说明,请查阅在线文档后开始代码编写。
github仓库地址:https://github.com/zhangyuanes/OperatingSystemExperiments
gitee码云仓库地址:https://gitee.com/yanbo01haomiao/OperatingSystemExperiments
详情请查看仓库中readme.md.实验手册与实验报告模板已经更新至ex4。


实验成绩和评分说明:
实验课四次实验均需要记录课堂签到分数和实验报告分数。
课堂签到仅有到场和未到场,课前请假视作到场,需提交请假条给助教,否则视为未到场,包括但不限于事后解释、中途离场但未签到、后期补签等,请认真对待。
实验报告不交的按照0分记录,补交按60分记录。请务必确保实验报告按时提交。
签到与实验报告分数权重分配为0.15:0.85。四次实验权重分配为0.10:0.20:0.30:0.40。最终成绩为加权平均后结果,请各位同学认真对待实验课程。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注