实验五 虚拟内存页面置换算法 1、 实验目的 通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。 2、 试验内容 问题描述: 设计程序模拟先进先出 FIFO、最佳置换OPI 和最近最久未使用 LRU 页面置换算法的工作过程。假设内存中分配给每个进程的最 小物理块数为 m,在进程运行过程中要访问的页面个数为 n,页 面访问序列为 P1, … ,Pn,分别利用不同的页面置换算法调度进程 的页面访问序列,给出页面访问序列的置换过程,计算每种算法 缺页次数和缺页率。 3、 程序要求: 1)利用先进先出 FIFO、最佳置换OPI 和最近最久未使用 LRU 三种页面置换算法模拟页面访问过程。 2)模拟三种算法的页面置换过程,给出每个页面访问时的内存 分配情况。 3)输入:最小物理块数 m,页面个数 n,页面访问序列 P1, … ,Pn, 算法选择 1-FIFO,2-OPI,3-LRU。 4)输出:每种算法的缺页次数和缺页率。 4、 需求分析 (1) 输入的形式和输入值的范围 算法选择 物理块数 页面个数 页面访问序列P1, … ,Pn (2) 输出的形式 每种算法的缺页次数和缺页率 (3) 测试用例 引用率70770170122010320304243230321201201770101页框(物理块)203引用率70770170122010323104430230321013201770201页框2304204230230127127011引用率70770170122010320304403230321132201710701页框4024320321025、 调试分析 通过二次编程,又一次加深了对先进先出(FIFO)页面置换算法,最佳(OPI)置换算法,最近最久未使用(LRU)置换算法的理解。 同时,也掌握了一些使界面输出看起来更工整的办法。 还有,在平时做作业的时候,总是默认为物理块数是3,其实只是比较常用而已,并不是每次都是3.这个在编程中有体现,在今后做题中会更注意。 6、 测试结果 (1)先进先出FIFO页面置换算法 输入 输出 (2)最佳页面OPI置换算法 输入 输出 (3)最近最久未使用LRU置换算法 输入 输出 7、附录(java) package experiment; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class E_PageDisplace { private static int MaxNumber = 100; // 页面序列P1, … ,Pn, private static int PageOrder[] = new int[MaxNumber]; // ...