LRU背景介绍
LRU,全称Least Recently Used-最近最少使用,是一种内存淘汰算法,笔者最早接触到这个算法是在本科操作系统的课程上,讲到操作系统的虚拟内存页面置换的时候提到的。
这个经典内存淘汰算法也被很多其它地方使用,经常作为缓存的淘汰策略,缓存作为一种提升查询速度的手段,本身就是为了将持久化到硬盘上的数据中的热点部分加载到读取速度更快的内存中(局部性原理),而内存肯定是加载不了磁盘中的全部数据的,那就涉及到如果加载到缓存时发现内存满了怎么办?需要从缓存中淘汰掉谁?于是很自然的会想到淘汰内存中最冷门的记录*,于是LRU算法定义了标记跟踪到这个最冷门数据的方法。
手机后台也是一种LRU
操作系统中的LRU
虚拟内存
操作系统作为用户应用与硬件设备之间的代理人,有着屏蔽底层不同硬件逻辑的职责,例如内存条,
内存条
对于用户应用程序来说,不应该由它来操心运行在的这台机器到底查了几个内存条、啥型号的、有多大内存,也不需要关注会不会读到其它应用的内存信息、会不会写到人家内存上导致数据错乱。而是由操作系统封装了这一切,操作系统的封装方式就是虚拟内存。
操作系统的这种封装底层硬件、为上层用户应用提供API接口的思想也是计算机领域的核心思想,即分层思想,每一层只做当前这一层的封装功能