实验二、存储器管理
一、实验目的
理解各类置换算法的原理和虚拟存储器管理的方法。
二、实验内容
编程实现 LRU 算法或 CLOCK/改进算法等置换算法(二选一),模拟实现虚拟存储器的地址变
换过程。
实验步骤:
理解 LRU 或 CLOCK 改进算法等置换算法;
设计与算法相关的数据结构,如:LRU 的堆栈或 CLOCK 改进算法中的循环结构;
按照最多 5 块的内存分配情况,编程实现所选算法,动态输入访问内存的块号序列,输出置
换结果;
测试:输入合法、非法的访问序列数据,检查程序的正确性。
理解虚拟存储器的地址变换过程;
设计用于模拟快表、页表、地址变换所用的寄存器的数据结构;
编制页表的初始信息文件,举例说明文件中具有的信息:共有 5 块,每块的状态、在内存和
外存的起始地址等。
编程实现虚拟存储器地址变换算法程序,动态输入所要访问的逻辑地址,变换过程文字描述
以及变换后的物理地址;
测试:输入有效、无效地址,测试程序的正确性和错误处理能力。
三、实验环境
Windows 2000;Microsoft Visual C++ 6.0
四、程序源码与运行结果
LRU 算法代码
#include<iostream>
using namespace std;
int size;
int *w;
//定义一个动态数组
struct mem
{
int num;
int count;
}memBlock[3]={0,0,0,0,0,0};
void LRU()
{
for( int i = 0; i < size; i++ )
{
int maxCount = memBlock[0].count;
int maxPos = 0;
int j = 0;