操作系统课程设计三——虚拟内存的管理 数学 07-2 班 陈晓丽 学号:200701050202
3. 算法及数据结构
3.1 算法的总体思想(流程):
1、总体思路:
本实验中基于简单的设计 只实现了 pagenumber 小于 40 的置换算法,即 M=40,若
出现输入页数大于 M 的情况则报告“数目太多,请重试”,否则,进行 o,l,f 的选择进
行相应的页面置换算法。
2、三种算法的简介:
(1)FIFO 算法:最早出现的页面算法,该算法总是淘汰最先进入内存的页面,即
先进先出置换算法(FIFO)选择最先进入内存即在内存驻留时间最久的页面换出到外存。
(2)LUR 算法:FIFO 算法置换性能较差,因为他所依据的条件是各个页面调入内
存的时间,而页面调入的先后不能反映页面的使用情况。所以,后来又有人提出了, 以
“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰
出内存的 LUR 算法。
(3)OPT 算法:选择永不使用或是在最长时间内不再被访问(即距现在最长时间
才会被访问)的页面淘汰出内存。用于算法评价参照。(这是一中理想情况下的置换算
法,操作系统是实现不了的)
3、算法的设计思路:
(1)FIFO 算法:如果在 page 中找到相应的页,则继续查看下一页即可,否则,替
换最早被替换的 page
(2)LUR 算法:若在 page 中找到某一页,则将该 page.time=0,否则,用该页置换
最近最少使用的页面并赋值(page[t].num=p[i].num;//将此页面置换掉,page[t].time=0;//
将其 time==0)。最后对其他 page 进行 page.time++;
(3)OPT 算法:如果在 page 中找到相应的页,则继续查看下一页即可,否则,替
换此后最少被使用的页所在的 page。