页面置换算法

    当发生缺页错误且内存中的空间不够再分配出一个新的空白页面的时候,操作系统就需要从内存空间中置换一个页面出来载入当前发生缺页错误的页面,查找可以置换的页面的算法通常有下面几个:

1.最优页面置换算法

    首先申明,这个算法只是理想中的情况,实际是无法运行的,该算法的前提是需要知道每个内存中的页面离下一次被执行有多少条指令的间隔,指令数越多,说明下次访问到该页面的时间也往后,那么更适合被置换除去,之所以无法实际运行,原因就在于怎么知道这个页面离下次被运行还有多久,当然,可以提前先跑一次这个程序,知道每个页面的执行顺序,或许可以解决这个问题。

2.最近未使用页面置换算法

    这种算法是基于对页面保存被访问和被修改的次数的基础上实现的,保存这些信息可以由硬件实现,也可以有软件实现。

    通俗点说,每个页面初始时的访问位0,修改位0,加载到内存后访问位1,如果在内存中该页面被修改,则修改位1。

    这两个标志位会根据定时器中断进行清0,然后当发生缺页错误的时候,如果需要将内存中的页面替换出来,那么就按照下面的有限级找到符合的第一个页面置换出来

    访问位    修改位

     0           0

     0           1

     1           0

     1           1

3.先进先出页面置换算法

    这个算法比较好理解,就像超市理货架会把上架时间较长的商品清理掉一样,将内存中先载入的页面置换出来。但是这么做的弊端显而易见,因为时间越久的页面被访问的次数很可能越多和频繁。

4.第二次机会页面置换算法

    这个置换算法是在先进先出的算法上对于被访问过的且在内存中存活时间较长的一面一次重生的机会,系统在进行置换页面判断的时候,如果发现这个页面被读取过,就是访问位是1,就重置访问位以后将页面的装入时间改到最新,即按照装入时间将所有页面组成一个链表,被访问过的页面可以清掉访问位后重新排到页表最前面,而置换则是换排在链表后面的页面,就是装入时间比较早的且访问位是0的页面。

5.时钟页面置换算法

这种算法中,有一个指针指向了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值