LIRS机制基本原理

LIRS分为两个队列:
Stack S :存储LIR块和HIR块(常驻或非常驻内存)
List Q :存储所有常驻HIR块
如下图所示
16278983131.png
对LIRS中的数据又三种访问情况:

  1. 访问一个LIR块X。LIR块的访问会在S中命中,此时需要将改X移动到S的栈顶,如果X最初在栈底,那么移动之后需要做【栈剪枝】操作;
  2. 访问一个HIR常驻内存块X。该访问也会被命中,首先将X移动到S栈顶,然后:
  • X在S中,将X状态由HIR修改为LIR,并从Q中移除,将S栈底的LIR块移到Q的尾端,并将状态修改为HIR,S执行【栈剪枝】;
  • X不在S中,保持其状态HIR,并将其移动到Q的尾端;
  1. 访问一个HIR非常驻内存块X。由于内存非常驻,因此未命中,先移除Q队列首端的HIR常驻内存(状态变为非常驻),然后将X加载入以释放的内存并将其放在S的栈顶,然后:
  • 如果X本身就在S中,将其状态修改为LIR,并将S栈底的LIR块移除到Q的尾端,状态改为HIR,S执行【栈剪枝】;
  • 如果X不在S中,保持其HIR的状态,并放在Q的尾端。

栈剪枝:在S栈底依次移除HIR块,直到栈底为LIR块内存。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值