
页面置换算法的模拟实现与命中率比较
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目通过编程实现了几种常见的页面置换算法,并对它们在不同条件下的命中率进行了对比分析。
一、课程设计目的
通过模拟请求页式管理方式中的页面置换算法来了解虚拟存储技术的特点,并掌握在请求页式存储管理中使用的各种页面置换算法。
二、课程设计内容
需要实现OPT(最佳置换)、FIFO 和 LRU 算法的模拟,同时计算不同算法下的缺页率。具体步骤如下:
1. 使用随机数生成函数创建一个“指令将要访问的地址序列”,然后将其转换为相应的页面地址流(即页面访问序列),再根据不同的算法来确定命中率。
2. 通过随机数产生总共400条地址,其中50%是顺序执行的地址访问,另外50%是非顺序执行。且这些地址在前半部和后半部分均匀分布。具体做法为:
- 在[0,199]范围内选择一个数字m,并将其记录到数组中(非顺序);
- 接着执行下一个连续指令的地址 m+1 并记录下来;
- 从[200,399]范围随机选取一个新的起始地址,然后同样以这种模式进行下一条指令的操作。
- 按此步骤重复直到生成400个地址序列。
3. 把这400条指令的访问地址转换成页号流。假设页面大小为1K(这里的“K”只是单位),用户虚存容量是40K,内存容量从4到40个页面框不等;每一页可以容纳10条指令。
- 指令访问地址在[0,9]范围内的对应第0页;
- [10, 19]的则为第1页等等以此类推,直到所有指令被分配到“40个页面”中。
4. 循环运行实验,在不同内存容量下(从4至40个页面框)计算OPT、FIFO 和 LRU 页面置换算法下的缺页率。输出结果格式如下:
- 例如:对于一个特定的内存量,分别给出三种算法对应的缺页率。
需要注意的是在某些情况下可能观察到 FIFO 算法的表现优于 LRU, 但通过多次实验后可以发现LRU 的平均性能要好于FIFO。
计算时应当考虑内存未满和已满两种情况下的总缺页次数。
全部评论 (0)


