谁能举两个关于LRU和LFU的例子



谁能举两个关于LRU和LFU的例子?

1.对LRU不利,对LFU有利

2.对LRU有利,对LFU不利?

  1. LRU 坏 LFU 好

    示例可在此处找到:https://stackoverflow.com/a/29225598/7839693

  2. LRU 好 LFU 坏

让我们考虑该示例的修改版本:

A, B, C, A, A, A, A, B, B, B, B, C, D, C

使用 LRU,我们会得到类似的东西:

[A]
[A, B]
[A, B, C]
[B, C, A] <- a stream of As keeps A at the head of the list.
[C, A, B] <- a stream of Bs keeps B at the head of the list.
[A, B, C]
[B, C, D] <- here, we evict A
[B, C, D]
[B, D, C]

但是,对于 LFU,我们将保留 A 和 B,这将导致驱逐 C 和 D,如下所示:

[A]
[A, B]
[A, B, C]
[A, B, C] <- a stream of As makes the frequency of A = 5
[A, B, C] <- a stream of Bs makes the frequency of B = 5
[A, B, C] <- C = 2
[A, B, D] <- here, we evict C because it has the lowest frequency
[A, B, C] <- here, we evict D because it has the lowest frequency

与 LRU 相比,我们最终使用 LFU 驱逐了 C 和 D,其中我们保留了 D 和 C

  • LRU、LFU是os中的页面替换算法。它分会在内存中交换页面和交换页面的方式!!
  • "最不常用"是操作系统中页面替换的最佳策略!!!

  • LRU(最近最少使用(: CPU将分配的进程将是 最近最少使用,在活动进程队列中。

  • LFU(最不常用(: CPU将分配的进程将是 在活动进程队列中使用频率最低。

  • LRU 是一种缓存逐出算法,称为最近最少使用的缓存。
  • 主要区别在于,在 LRU 中,我们只检查哪个页面是最近比其他页面使用旧页面,即仅检查基于最近使用的页面。但是在 LFU 中,我们也检查旧页面作为该页面的频率以及页面的频率是否更高比旧页面我们无法删除它,如果我们所有旧页面都是具有相同的频率,然后采取最后,即FIFO方法。和删除页面....

最新更新