率1floatcha
ge39
结束
f23
OPT算法的流程图
开始
中断页数cha
ge0;循环控变量i0;利用循环将buf中的值全置1(过程略);假判断iN真jIsI
Bufbuflisti
假
判断是否置换标志:j1真
求出要置换的位置:oldoldestlistbuffi
输出置换页bufold
将新的序列装入内存中bufoldlisti
将内存固定序列数计数数组清零:fold0
中断次数cha
gei
输出空字符i
输出算法命中率1floatcha
ge39
结束
f六.使用说明:
1登录Li
ux系统的终端使用一下指令
11cd目录名(进入你存程序的文件夹)12gedit文件名(打开Li
ux系统内置的编译器并把文件导入文本区)13回到终端输入gcc文件名(编译源程序)14再次输入aout运行源程序并得出结果)15得出结果键入exit退出所有操作)
2使用MicrosoftVisualC60编译运行
21直接将编好的文件导入到编译器中22如图按钮执行编译运行操作23退出直接关闭编译器即可
七.运行结果及分析
1运行结果11FIFO算法与LRU算法命中率一样的情况
12FIFO算法命中率最低的情况
f13FIFO算法比LRU算法命中率高的情况
2运行结果分析
三种结果告诉我们OPT算法的命中率最高,淘汰页面最少,而FIFO算法和LRU算法在不同的情况下略有不同,但是淘汰的页面却有很大不同。在理论上来说,LRU算法优于FIFO算法。
八.自我评价与总结
f通过这次课程设计,不仅让我了解了页面置换算法,而且使我对操作系统这门课程有了更进一步的认识和了解,要想学好它要重在实践。在有充分的理论基础的情况下要通过不断的上级操作才能更好地学习它。在编好程序后,我一开始就一味的进行调试,急切的想侥幸调试出来,但由于没有进行深入的考虑,我调试了很久都没有成功,我仔细的分析题目,分析材料,在原有基础上我进行了改正,经过了一番努力,最后还是调试成功了。同时在编程阶段,我发现自己在逻辑思维的设计上还存在一定的缺陷,一些C语言的基础知识还未掌握到位,对于函数的形参与实参之间的转化还不是很清楚。虽然在学习课本知识的时候感觉老师讲起来很好懂,但是一旦要运用到实际当中却不知道怎么转换,出现了对知识结构的空洞状态。三种置换算法,特别是在FIFO算法与LRU算法的设计上出现了混乱状态,通过对运行结果的一次又一次的检查还有在老师的帮助下我才慢慢的洞察到自己到底哪里出现了问题,在设置置换标志与判断是否置换的条件设计上出现了考虑不周全的情况。在找空闲物理块的时候,起初我比较物理块是否等于0,若为0,则直接r