备忘录

操作系统:

通常情况下有如下几种算法来对进程创建时的空间进行分配

  •      临近适应算法(Next fit)---从当前位置开始,搜索第一个能满足进程要求的内存空间
  •      最佳适应算法(Best fit)---搜索整个链表,找到能满足进程要求最小内存的内存空间
  •      最大适应算法(Wrost fit)---找到当前内存中最大的空闲空间
  •      首次适应算法(First fit) ---从链表的第一个开始,找到第一个能满足进程要求的内存空间

当虚拟内存所求的页不在物理内存中时,将需要将物理内存中的页替换出去,选择哪些页替换出去就显得尤为重要。

**************************************************************************************************

页面替换算法:

最佳置换算法(Optimal Page Replacement Algorithm)

     最佳置换算法是将未来最久不使用的页替换出去,这听起来很简单,但是无法实现。但是这种算法可以作为衡量其它算法的基准。

 

最近不常使用算法(Not Recently Used Replacement Algorithm)

     这种算法给每个页一个标志位,R表示最近被访问过,M表示被修改过。定期对R进行清零。这个算法的思路是首先淘汰那些未被访问过R=0的页,其次是被访问过R=1,未被修改过M=0的页,最后是R=1,M=1的页。

 

先进先出页面置换算法(First-In,First-Out Page Replacement Algorithm)

    这种算法的思想是淘汰在内存中最久的页,这种算法的性能接近于随机淘汰。并不好。

 

改进型FIFO算法(Second Chance Page Replacement Algorithm)

    这种算法是在FIFO的基础上,为了避免置换出经常使用的页,增加一个标志位R,如果最近使用过将R置1,当页将会淘汰时,如果R为1,则不淘汰页,将R置0.而那些R=0的页将被淘汰时,直接淘汰。这种算法避免了经常被使用的页被淘汰。

 

时钟替换算法(Clock Page Replacement Algorithm)

    虽然改进型FIFO算法避免置换出常用的页,但由于需要经常移动页,效率并不高。因此在改进型FIFO算法的基础上,将队列首位相连形成一个环路,当缺页中断产生时,从当前位置开始找R=0的页,而所经过的R=1的页被置0,并不需要移动页。



最久未使用算法(LRU Page Replacement Algorithm)

    LRU算法的思路是淘汰最近最长未使用的页。这种算法性能比较好,但实现起来比较困难。

下面表是上面几种算法的简单比较:

算法 描述
最佳置换算法 无法实现,最为测试基准使用
最近不常使用算法 和LRU性能差不多
先进先出算法 有可能会置换出经常使用的页
改进型先进先出算法 和先进先出相比有很大提升
最久未使用算法 性能非常好,但实现起来比较困难
时钟置换算法 非常实用的算法


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值