页面置换算法解析

固定的为进程分配3个页框,驻留集大小固定,进程的执行需要访问5个不同的页,运行该进程需要访问的页地址顺序为: 2 3 2 1 5 2 4 5 3 2 5 2

一、           OPT(最佳页面置换算法)

该算法选择置换下次访问距当前时间最长的那些页,可以看出该算法可以导致最少的缺页中断,但它要求操作系统能够预知未来的时间,这是不可能实现的,但是该算法可以作为一种标准来衡量其他算法的性能


二、           LRU(最近最少使用)   

置换内存中上次使用距当前最远的页。根据局部性原理,这也是最近最不可能访问的页,实际上,LRU策略的性能接近于OPT,该方法的问题是难于实现。一种方法是给每一页添加一个最后访问的时间标签,并且每次访问存储器时都要更新这个标签。即使有支持这种方案的硬件,开销也是很大。另一种可选择的方法是维护一个关于访问页的栈,但是开销仍然很大


三、           FIFO策略(先进先出)

该策略把分配给进程的页框看成一个循环缓冲区,按循环移动页,它所需要的只是一个指针,该指针在进程的页框中循环,因此这是实现起来最简单的页面置换策略。该策略置换出那些在页框中驻留时间最久的页,认为驻留时间最久了,到现在可能不再用了。这个推断是错误的,因为会经常出现一部分程序或数据在整个程序的生命周期中使用频率都很高的情况,如果使用该算法,则这些页需要反复的调入调出


  


四、           时钟策略

最简单的时钟策略需要给每一页框关联一个附加位,称为使用位。当某一页首次装入内存中时,则将该页页框的使用位设置为1;当该页随后被访问到时(在访问产生缺页中断之后),它的使用位也会被设置为1。对于页面置换算法,用于置换算法,用于置换的候选页框集合(当前进程:局部范围;整个内存;全局范围)被看做是一个循环缓冲区,并且有一个指针针与之相关联。当一页被置换时,该指针针被设置成指向缓冲区中的下一页框。当需要置换一页时,操作系统扫描缓冲区,以查找使用位被置为0的一页框框。每当遇到一个使用位为1的页框框时,操作系统就将该位重新置为0;如果在这个过程开始时,缓冲区中所有页框的使用位均为0时,则选择遇到的第一个页框置换;如果所有页框的使用位均为1时,则指针针在缓冲区中完整地循环一周,把所有使用位都置为0,并且停留在最初的位置上,置换该页框中的页。可见该策略类似于FIFO(先进先出),唯一不同的是,在时钟策略中使用位为1的页框框被跳过,该策略之所以称为时钟策略,是因为可以把页框形象地想象成在一个环中。许多操作系统都采用这种简单时钟策略的某种变体。


注:*号表示相应的使用位为1,红色单元格表示指针指向的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值