【用戶】不叫賭俠的陳小刀
【年級】高三下
【評論內容】什麼替換算法是替換集合中在緩存中時間最長且未被引用的塊?(A) FIFO(B) CLM(C) LFU(D) LRULRU(Least Recently Used Cache) 是一種快取的實做方式,概念是會儲存最近用過的內容,會透過 Hash Map與 Double Linked List 來搭配實做,如果欲常被使用,內容會被擺在 List愈前方的位置,如果快取滿了,則會從 List最末端元素開始移除。LFU(Least Frequently Used)最近最少使用演算法。它是基於“如果一個數據在最近一段時間內使用次數很少,那麼在將來一段時間內被使用的可能性也很小”的思路。注意LFU和LRU演算法的不同之處,LRU的淘汰規則是基於訪問時間,而LFU是基於訪問次數的。FIFO(First in First out),先進先出。其實在作業系統的設計理念中很多地方都利用到了先進先出的思想,比如作業排程(先來先服務),為什麼這個原則在很多地方都會用到呢?因為這個原則簡單、且符合人們的慣性思維,具備公平性,並且實現起來簡單,直接使用資料結構中的佇列即可實現。在FIFO Cache設計中,核心原則就是:如果一個數據最先進入快取中,則應該最早淘汰掉。
【用戶】不叫賭俠的陳小刀
【年級】高三下
【評論內容】什麼替換算法是替換集合中在緩存中時間最長且未被引用的塊?(A) FIFO(B) CLM(C) LFU(D) LRULRU(Least Recently Used Cache) 是一種快取的實做方式,概念是會儲存最近用過的內容,會透過 Hash Map與 Double Linked List 來搭配實做,如果欲常被使用,內容會被擺在 List愈前方的位置,如果快取滿了,則會從 List最末端元素開始移除。LFU(Least Frequently Used)最近最少使用演算法。它是基於“如果一個數據在最近一段時間內使用次數很少,那麼在將來一段時間內被使用的可能性也很小”的思路。注意LFU和LRU演算法的不同之處,LRU的淘汰規則是基於訪問時間,而LFU是基於訪問次數的。FIFO(First in First out),先進先出。其實在作業系統的設計理念中很多地方都利用到了先進先出的思想,比如作業排程(先來先服務),為什麼這個原則在很多地方都會用到呢?因為這個原則簡單、且符合人們的慣性思維,具備公平性,並且實現起來簡單,直接使用資料結構中的佇列即可實現。在FIFO Cache設計中,核心原則就是:如果一個數據最先進入快取中,則應該最早淘汰掉。