广州大学学生实验报告
开课学院及实验室:计算机科学与工程实验室 2015 年 12 月 1 日
(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)
一、实验目的
通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特
点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比
较它们的效率。
二、实验内容
实验 1:
设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。
1、最佳淘汰算法(OPT)
2、先进先出的算法(FIFO)
3、最近最久未使用算法(LRU)
4、最不经常使用算法(LFU)
5、最近未使用算法(NUR)
命中率=1-页面失效次数/页地址流长度
实验 2:
在 Linux 环境下利用下列系统调用 malloc(), free()编写一段程序实现内存分配与 回
收的管理。
要求:
1、返回已分配给变量的内存地址;
2、返回释放后的内存地址;
3、释放已分配的内存空间后,返回释放内存后未使用内存的大小。
三、实验原理
UNIX 中,为了提高内存利用率,提供了内外存进程对换机制;内存空间的分配和回收
均以页为单位进行;一个进程只需将其一部分(段或页)调入内存便可运行;还支持请求调
页的存储管理方式。
当进程在运行中需要访问某部分程序和数据时,发现其所在页面不在内存,就立即提
出请求(向 CPU 发出缺中断),由系统将其所需页面调入内存。这种页面调入方式叫请求
调页。为实现请求调页,核心配置了四种数据结构:页表、页框号、访问位、修改位、有效
位、保护位等。
当 CPU 接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中
断处理程序。该程序通过查找页表,得到该页所在外存的物理块号。如果此时内存未满,能
容纳新页,则启动磁盘 I/O 将所缺之页调入内存,然后修改页表。如果内存已满,则须按某
种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调
入,修改页表。利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。
整个页面的调入过程对用户是透明的。
四、实验设备
安装了 Linux 系统的电脑