内存管理学习之页面置换算法

在将页面算法置换算法之前,首先需要了解系统如何分配给每个进程内存空间,即为每个进程分配多少个页框驻留进程。分配到的页框称为驻留集。

有两种方法:固定驻留策略和动态驻留策略。

固定驻留策略指为每个进程分配固定的页框数,不能增减,也不能使用别的进程的空间

动态驻留策略指在进程活跃期间,系统可以根据进程的缺页率进行动态调整,进程的页框数可以增减。

这样就有两个问题:页框置换的范围,如何选择置换出内存的页框。

页框置换有局部置换和全局置换,局部置换仅限于本进程的空间中,全局置换则允许置换别的进程中的页框。

固定驻留策略必然导致局部置换,而全局置换必须使用动态驻留策略

第一个问题解决,第二个问题则涉及到置换算法,坏的置换算法可能导致抖动,所谓抖动就是指一个经常使用的页面被经常调入和调出,导致系统效率低下。

置换算法有:最佳置换算法OPT、FIFO置换算法、最少使用页面置换算法、最近未使用页面置换算法、时钟页面置换算法等

OPT算法是理论算法,它将不再使用的页面换出,而实际中不能预知哪个页面不再使用,但是这个算法是最优算法,可以作为评测其他算法的性能。

FIFO算法:按照页面装进内存的时间进行置换,越老的页面最先被换出,不管该页面是否经常使用,这样就有可能导致缺页率增加,导致页面置换次数增加。

最少使用页面置换算法:按照上次使用时间进行排序,将离上次使用时间最长的页面换出,可以采用栈的数据结构,每次页面被访问将该页面号放在栈顶。

最近未使用页面置换算法:设置引用位R,每次调用将R=1,系统每个一段时间将R=0,当进行置换式检查哪个页面为零说明近期不会再使用,可以将其换出。

时钟页面置换算法:采用应用为R,当R=1说明被引用过,这种方法是FIFO的改进,根据装入内存时间和是否被引用过作为标准,首先从时间最长项检查,若R=0则置换出,若为1则检查下一项并将R=0。若全部R=1,则按照FIFO方法进行置换。

-------------------------------------------------------------------------

选择好置换的页面后,如何进行置换呢?

首先判断被置换的页面是否被修改过,若没有则可以直接擦出该页框,如修改过则必须首先保存到外存中,然后再读入新页面。

页面缓冲技术:不必先保存,因为每次都保存一个页面增加了IO操作,消耗过大。

缓冲技术可以将被修改过和未修改过的页面存在缓冲区,然后对被修改过的页面进行批量保存,减少了IO操作。未修改的页面进行缓冲是为了防止在近期内被调用,不必再从外存调入内存,若在一段时间内不被调用则批量消除。

转载于:https://www.cnblogs.com/tracylee/archive/2012/10/16/2726891.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要纠正一下,正确的拼写应该是LRU页面置换算法,而不是lur。 LRU页面置换算法是一种常见的操作系统内存管理算法,用于解决内存不足时的页面置换问题。其原理是基于时间局部性原理,即刚刚被访问的页面有很高的概率在未来也会被访问到。 LRU算法维护一个页面访问时间的队列,每当有页面被访问时,就将该页面移动到队列的末尾。当内存不足时,就将队列头部的页面置换出去,因为它们最久没有被使用过,即最近最少使用(Least Recently Used,LRU)。 LRU算法的优点是相对简单、易于实现,能够较为准确地预测未来访问模式,从而避免不必要的页面置换。但是,LRU算法需要维护一个访问时间队列,因此对内存的消耗比较大,实现也比较复杂。 在学习LRU算法时,需要掌握以下知识点: 1. 页面置换的概念和原因。了解什么是页面置换,为什么需要进行页面置换。 2. 缺页中断的处理。了解当访问的页面不在内存中时,会触发缺页中断,需要进行页面置换。 3. 内存管理单位。了解操作系统中内存管理的最小单位是页面,而不是字节或者位。 4. 时间局部性原理。了解刚刚被访问的页面有很高的概率在未来也会被访问到,LRU算法正是基于此原理设计的。 5. LRU算法的具体实现。了解如何维护页面访问时间队列,如何进行页面置换等。 6. LRU算法的优缺点。了解LRU算法的优点和缺点,以及适用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值