2022-03-23 LRU和LFU 算法(页面置换算法)

LRU和LFU 算法(页面置换算法)

  • LRU和LFU的区别
  • 例子
  • 原文章

LRU和LFU的区别

  • LRU和LFU都是内存管理的页面置换算法。

  • LRU:最近最少使用(最长时间)淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的页面。

  • LFU:最不经常使用(最少次)淘汰算法(Least Frequently Used)。LFU是淘汰一段时间内,使用次数最少的页面。

例子

假设LFU方法的时期T为10分钟,访问如下页面所花的时间正好为10分钟,内存块大小为3。若所需页面顺序依次如下:

2 1 2 1 2 3 4

  • 当需要使用页面4时,内存块中存储着1、2、3,内存块中没有页面4,就会发生缺页中断,而且此时内存块已满,需要进行页面置换。
  • 若按LRU算法,应替换掉页面1。因为页面1是最长时间没有被使用的了,页面2和3都在它后面被使用过。
  • 若按LFU算法,应换页面3。因为在这段时间内,页面1被访问了2次,页面2被访问了3次,而页面3只被访问了1次,一段时间内被访问的次数最少。

LRU 关键是看页面最后一次被使用到发生替换的时间长短,时间越长,页面就会被置换;

LFU关键是看一定时间段内页面被使用的频率(次数),使用频率越低,页面就会被置换。

  • LRU算法适合:较大的文件比如游戏客户端(最近加载的地图文件);
  • LFU算法适合:较小的文件和零碎的文件比如系统文件、应用程序文件 ;
  • LRU消耗CPU资源较少,LFU消耗CPU资源较多。

原文章

原文描述的挺详细的,推荐推荐
LRU和LFU 算法(页面置换算法)

你可能感兴趣的:(#,Linux,linux)