当前位置: 首页 > news >正文

LRU算法之我见

文章目录

  • 一、LRU算法是什么?
  • 二、使用原理
  • 三、代码实现
  • 总结


一、LRU算法是什么?

LRU算法又称最近最少使用算法,它是是大部分操作系统为最大化页面命中率而广泛采用的一种页面置换算法。是一种缓存淘汰策略,根据使用频率来淘汰无用信息,使有用信息进行长时间的保留。

二、使用原理

LRU算法须有两类硬件之一的支持:寄存器或栈。
具体流程(个人理解):
假如我们有这么一个寄存器或栈,头是很久没有访问过的数据,尾是经常访问的数据。在这里插入图片描述我们进行一次访问2的操作,LRU算法会使刚刚访问的元素(也就是2)放到尾部,而后面的元素依次前移。
在这里插入图片描述
如果是添加,则会将首元素(也就是1)删除,其余元素依次前移,新元素添加到尾部。
在这里插入图片描述

三、代码实现

此处是我做CSAPP的CacheLab中的伪代码

   /*没有空位,使用LRU算法进行替换*/eviction_count++;int evictIndex = 0;int maxTime = 0;for (int i = 0; i < E; i++) {if (cacheSet[i].time > maxTime) {maxTime = cacheSet[i].time;evictIndex = i;}}cacheSet[evictIndex].tag = tagIndex;cacheSet[evictIndex].time = 0;

总结

这就是我大概的理解,有点像我平时摞书,最近常看的书放到最顶上,不长看的书就慢慢放到底下了。

http://www.lryc.cn/news/163609.html

相关文章:

  • 【第20例】华为 IPD 体系 | IPD 的底层思考逻辑(限制版)
  • spaCy库的实体链接踩坑,以及spaCy-entity-linker的knowledge_base下载问题
  • 【数据结构】红黑树的插入与验证
  • Pycharm----将Anaconda建立的环境导入
  • 数字花园的指南针:微信小程序排名的提升之道
  • LRU与LFU的c++实现
  • 什么是Docker和Docker-Compose?
  • 三.listview或tableviw显示
  • 【算法】一文带你从浅至深入门dp动态规划
  • 超简单免费转换ape到flac
  • JavaScript混淆加密
  • Java8特性-Lambda表达式
  • 通过Power Platform自定义D365CE业务需求 - 1. Microsoft Power Apps 简介
  • 简易实现QT中的virtualkeyboard及问题总结
  • 景联文科技可为多模态语音翻译模型提供数据采集支持
  • 定时器分批请求数据
  • 【华为OD机试python】报数游戏【2023 B卷|100分】
  • 【深度学习实战—6】:基于Pytorch的血细胞图像分类(通用型图像分类程序)
  • 华清远见第六课程day4作业
  • 【广州华锐互动】AR远程智慧巡检在化工行业中的应用
  • easyui-sidemenu 菜单 后台加载
  • Python总结上传图片到服务器并保存的两种方式
  • 【ETH】以太坊合约智能合约逆向方案
  • C高级Day5
  • AI绘画:Midjourney超详细教程Al表情包超简单制作,内附关键词和变现方式
  • Linux dup dup2函数
  • 设计模式系列-外观模式
  • DBeaver 下载、安装与数据库连接(MySQL)详细教程【超详细,保姆级教程!!!】
  • 使用adjustText解决标签文字遮挡问题python
  • [论文笔记]SiameseNet