内存的指令旁都附加了一个累加器, 以访问次数和时间决定要淘汰的指令, 而我是每访问一次后, 按访问次数冒泡排序一次, 这样最近被访问的就在数组的最顶上, 最远被访问的在内存数组的最底部, 没有用到循环队列, 但也能实现功能。这次我没有用到结构体数组,也没有用到指针(有点遗憾),不过测试了好几组数据,结果都和我用笔算的一样。在编程中, 因为定义的变量太多了, 取名也有点混乱, 弄得我很晕,刚开始一直崩溃,后来我把程序的运行过程一步步的 cout 出来和调试,终于发现了错误的地方。开始我一直用 for() 语句来控制循环, 但是都找不到适合的让它结束循环的方法, 后来才想到了可以用 while(n--) 来控制, 效果还不错。还有就是第一次使用随机函数, 有点陌生, 上网查了些资料, 终于会应用它了。这次试验大概就遇到了以上问题, 都一一解决了,当然程序还是存在一些问题的,但是收获很多! 五、实验总结通过本次实验,我对操作系统这门课程有了更进一步的认识和了解,通过模拟实现请求页式存储管理的几种基本页面置换算法, 了解虚拟储技术的特点。通过对页面、页表、地址转换和页面置换过程的模拟, 加深对请求调页系统的原理和实现过程的理解, 也知道了几种算法的效率,也验证了 LRU 算法的命中率平均的比 FIFO 算法的高。在本次设计过程中,用到了许多 C++ 的基本知识和操作系统的基本原理,是对平时所学知识的一次考验, 尽管这些知识都学过, 但运用到实际时, 却不知从何下手, 而且错误不断, 往往为了找一个错误而花了大量的时间, 这是专业知识掌握不够, 缺乏实践动手能力的表现。在设计的过程中我们发现了许多自己的不足之处。通过该实验,我收获了很多。我了解到编写程序不是首要任务,而是一种实现手段。我们最重要的是如何做好需求分析和理清思路, 做出正确、简洁的流程设计, 这样可以达到事半功倍的效果。