[問題] 一個LRU cache實作的問題已刪文

看板C_and_CPP (C/C++)作者 (八卦蟑螂)時間3年前 (2021/01/21 01:36), 3年前編輯推噓1(101)
留言2則, 2人參與, 3年前最新討論串1/1
拍謝不知道要在哪裡問,最近在實作LRU遇到一些問題 假設我的cache policy是以LRU實作 存放單位是以request為單位 request = (起始位置,寫的長度) 假設寫單位是sector (LSN) 一個request (100,3)代表 : 寫LSN100 ~ 102 那問題來了 假設兩個request之間只有部份位置重疊 例如兩個request分別 : 寫100 101 102 103 寫99 100 問題 : 1.這樣的話有部份重疊到 如果我是以request evict當作真正處理request的話,不就會有發生先後順序的問題了,可 能我先寫了新的100再寫舊100 2.如果是hit到另外一筆request的部份位置,需要把那個request也往MRU丟嗎!? 3.這種情況發生的多嗎?如果都是只更新一小部份的話會一直遇到這個問題 p.s這邊假設是以Request level去做,用sector level去做就不會有這個問題了 先謝謝大家了0...0 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.15.88 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1611164170.A.698.html

01/21 13:22, 3年前 , 1F
sector level是用 bio嗎?
01/21 13:22, 1F
沒理解那麼深呢,我去看一下相關知識

01/21 15:35, 3年前 , 2F
與C無直接關聯喔
01/21 15:35, 2F
謝謝 我去prob_solve板問看看 ※ 編輯: Neverfor (112.78.66.220 臺灣), 01/21/2021 20:19:08
文章代碼(AID): #1W26eAQO (C_and_CPP)
文章代碼(AID): #1W26eAQO (C_and_CPP)