内容发布更新时间 : 2024/11/9 5:45:27星期一 下面是文章的全部内容请认真阅读。
FIFO置换算法的流程图
入口 初始化数据 i指向下一个页面 Y 页面是否存在 N 物理块是否有空闲 N 选择以后最长时间内(未来)不在被访问的页面作为淘汰页 Y 置u为1,重新获取离该页面最近的下个相同页面的位置,为Timer 将页面放到空闲的物理块处,获取Timer Y i OPT页面置换算法 入口 初始化数据 指向下一个页面 置页面访问位为0 页面访问位==0 Y 选择该页淘汰 N 计算缺页率,并输出数据 结束 简单Clock置换算法 入口 初始化数据 i指向下一个页面 Y 页面是否存在 N 物理块是否有空闲 N 选择最近最久未使用的页面作为淘汰页 Y i LRU页面置换算法 入口 初始化数据 i指向下一个页面 Y 页面是否存在 N 物理块是否有空闲 N 选择访问次数最少的页面作为淘汰页 Y i LFU页面置换算法 四、模块调试与系统测试 1、模块调试 ? 输入的页面序列是数字串,输入的物理块数是数字,且设置其范围在10之内。 ? 输出的形式是字符串。 ? 页面置换算法是选择页面换出的算法,通过OPT(最佳置换算法)、FIFO(先进先 出置换算法)、LRU(最近最久未使用置换算法)、简单Clock置换算法、LFU(最少使用置换算法)计算每种置换算法的访问次数、页面置换的次数、缺页中断的次数和缺页率,然后进行性能分析。 2、系统测试 ? 测试方法:黒盒测试 ? 测试报告: 测试数据描述 测试数据输入 预期结果输出 实际结果输出 出来提示框,提示输入成功 出来提示框,提示“输入错误,输入的页面序列必须为数字” 是否符合预定结果 符合预定结果 随机输入页面页面序列:得到提示,提序列,物理块数 7012030423032120 示输入成功 物理块数:3 随机输入页面页面序列:7013e 序列,物理块数 物理块数:3 得到提示,提示输入错误 符合预定结果 随机输入页面页面序列:7102635 得到提示,提序列,物理块数 物理块数:e 示输入错误 出来提示框,提示“输入错误,输入的物理块必须为数字,且物理块数必须在10之内” 符合预定结果 选择页面置换算法,按“置换结果”按钮 选择页面置换算法,按“置换结果”按钮 选择“性能分析”按钮 在未输入页面序列和物理块数时选择算法,按“置换结果按钮” 在页面序列和物理块数输入成功时,选择算法,按“置换结果”按钮 得到提示 出来提示,提示“输符合预定结果 入的页面序列或物理块数不能为空” 在可视化界面上,有相应算法的结果输出 得到提示框,提示“必须在各算法都得到结果时在进行性能分析” 符合预定结果 在可视化界面上,会得到相应的结果输出 在五种置换算法没得到提示 有全部得到结果时,按“性能分析”按钮 符合预定结果 3、调试分析: 页面置换算法是用的可视化的形式,在刚开始编程时遇到的问题如何接收数据和显示数据,在接收页面序列的数据时我用的是字符串的形式,因为在C#中可以像数据一样访问字符串中的数据,例如有字符串S,访问第三个数据时可以这么访问S[2],在接收物理块数的数据时我刚开始用的int型,对textBox里的数据进行强制转换,但是在对输入数据进行限制时,出现了错误,所以后来我还是改用了字符串的形式进行接收,在对物理块数的限制,刚开始没有限制,后来发现数据过大的话得到的结果没有太大的意义,因为这次课程课程设计知识仿真模拟页面置换的过程,所以我将物理块数限制在10之内。 在显示数据的地方,有试过很多方法,才开始想用ListView控件,但是有考虑到页面序列的长度不定,用ListView控件太死板,所以改用了Label控件,通过换行实现了比较好看的输出形式。 在各个算法的显示时,才开始想用Button控件,但是又觉得界面不够好看,换成了tabControl控件,窗口效果比较好。 再各算法的设计中,也遇到了一些困难,对于页面用了struct,而struct里timer,在不同的算法里面有不同的含义。 五、用户手册 1、使用平台是Microsoft Visual Studio 2008,需要安装该软件,直接双击安装即可。 2、该程序无需安装。 3、对于程序的使用,请按照如下步骤执行: (1)双击PageChange.exe,得到如下的界面 (2)输入页面序列,物理块数。输入的页面必须为数字,物理块数也必须为数字,且在10之内,否则会有相应的错误提示,具体的运行结果如下