Snailclimb / JavaGuide

「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!
https://javaguide.cn
Apache License 2.0
146.69k stars 45.58k forks source link

操作系统关于LFU描述有误 #703

Closed DeaglePC closed 4 years ago

DeaglePC commented 4 years ago

LFU页面置换算法(最少使用页面排序算法) : LFU(Least Frequently Used)算法会让系统维护一个按最近一次访问时间排序的页面链表,链表首节点是最近刚刚使用过的页面,链表尾节点是最久未使用的页面。访问内存时,找到相应页面,并把它移到链表之首。缺页时,置换链表尾节点的页面。也就是说内存内使用越频繁的页面,被保留的时间也相对越长。

这里开头说算法会让系统维护一个按最近一次访问时间排序的页面链表,链表首节点是最近刚刚使用过的页面,链表尾节点是最久未使用的页面。访问内存时,找到相应页面,并把它移到链表之首。这里明显是在说LRU呀,和后面的也就是说内存内使用越频繁的页面,被保留的时间也相对越长。 矛盾,应该改为 按照使用的频率排序,最先淘汰掉使用频率低的,而不是最久未使用的

wangpeipei90 commented 4 years ago

From wikipedia: The simplest method to employ an LFU algorithm is to assign a counter to every block that is loaded into the cache. Each time a reference is made to that block the counter is increased by one. When the cache reaches capacity and has a new block waiting to be inserted the system will search for the block with the lowest counter and remove it from the cache.

Snailclimb commented 4 years ago

已经修改!感谢指出。