} 切换目录 int dir() { int i=0,j=0; temp=new fnode; temp=recent; if(temp!=root) {cout<<\if(temp->child==NULL) { cout<<\return 1; } temp=temp->child; while(temp) { if(temp->isdir) {cout<<\else {cout<<\temp=temp->next; } cout<<\} - 16 -
- 17 -
四、实验小结(包括问题和解决方法、心得体会、意见与建议等) 通过课程设计,加深了对操作系统的认识,了解了操作系统中各种资源分配算法的实现,特别是对虚拟存储,页面置换有了深入的了解,并能够用高级语言进行模拟演示。在这短短的两周时间里,通过浏览、阅读有关的资料,学到了很多东西,同时也发现仅仅书本的知识是远远不够的,需要把知识运用到实践中去,能力才能得到提高。 两种页面置换算法FIFO和LRU理解起来相当容易,但在实际编程实现的时候需要注意各种细节,需要耐心细致,实际编程中遇到一些细节上的小问题确实需要仔细考虑才行。 思考题:1.如果增加分配给作业的内存块数,则将会对作业运行过程中的缺页率产生什么影响?答:LUR算法将降低缺页率;OPT算法将降低缺页率;FIFO算法将提高缺页率
2.为什么一般情况下,LRU具有比FIFO更好的性能?答:FIFO置换算法设计简单,容易理解。但它的效率并不是总能达到令人满意的效果。这个算法只有在顺序访问地址空间时才能达到理想效果,但根据程序的局部性原理,那些常被访问的页面往往要在主存中停留的最久,FIFO算法却将会将其换出页面,留下的只是一些新调入的的指令,这将导致内存频繁换页。LRU则选择在最近一段时间里最近没有使用过的页面予以置换,是与每个页面最后使用的时间又关的。当必须置换一个页面时,LRU选择过去一段时间里最久未被使用的页面。这种算法以最近的过去作为最近的将来的近似,较好地利用了程序的局部性原理。一般情况下,能取得较好的效果,是经常采用的页面置换算法。
- 18 -
五、指导教师评语 成 绩 批阅人 日 期 - 19 -