操作系统页面置换算法详解(附测试代码)

页面置换算法是虚拟存储管理实现的关键,其中,FIFO、LRU和OPT是几种常用的页面置换算法。

先进先出(First In First Out, FIFO)

1) 原理简述

(a) 在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先的AP个页面放入内存。

(b) 这时若有需要处理新的页面,则将原来在内存中的AP个页面中最先进入的调出(所以称为FIFO),然后放入新页面。

(c) 以后如果有新页面需要调入,按(b)的规则进行。

算法特点是,所使用的内存页面构成一个队列。

2) 图表描述

假设某个进程在硬盘上被化为5个页面(PP=5),以1、2、3、4、5分别表示,而下面是处理机调用它们的顺序(这取决于进程本身)。

1、4、2、5、3、3、2、4、2、5

而内存可以控制的页面数为3(AP=3),那么在使用FIFO算法时,这3个页面的内存使用情况如图所示。

 

3) 算法实现提示

要得到“命中率”,必然应该有一个常量 total_instruction记录页面总共使用次数;此外需要一个变量记录总共换入页面的次数(需要换出页面,总是因为没有命中而产生的)diseffect。利用公式1-(diseffect/total_instruction)×100%可以得到命中率。

(a) 初始化。设置两个数组page[ap]和pagecontrol[pp]分别表示进程页面数和内存分配的页面数,并产生一个随机数序列main[total_instruction](当然这个序列由page[]的下标随机构成),表示待处理的进程页面顺序, diseffect置零。

(b) 观察main[]中是否有下一个元素。如果有,则由main[]中获取该页面下标,并转(c);如果没有,则转到(g)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值