計算機中buffer和cache的理解

Linux中Buffer和Cache的區別

Cache 和 Buffer的區別

做者:知乎用戶
連接:https://www.zhihu.com/question/26190832/answer/32387918
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

cache 是爲了彌補高速設備和低速設備的鴻溝而引入的中間層,最終起到**加快訪問速度**的做用。
而 buffer 的主要目的進行流量整形,把突發的大數量較小規模的 I/O 整理成平穩的小數量較大規模的 I/O,以**減小響應次數**(好比從網上下電影,你不能下一點點數據就寫一下硬盤,而是積攢必定量的數據之後一整塊一塊兒寫,否則硬盤都要被你玩壞了)。
=======================
如下觀點屬於程老大,無節操默寫:
一、 Buffer(緩衝區)是系統兩端處理 速度平衡(從長時間尺度上看)時使用的。它的引入是爲了減少短時間內突發I/O的影響,起到 流量整形的做用。好比生產者——消費者問題,他們產生和消耗資源的速度大致接近,加一個buffer能夠抵消掉資源剛產生/消耗時的忽然變化。
二、 Cache(緩存)則是系統兩端處理 速度不匹配時的一種 折衷策略。由於CPU和memory之間的速度差別愈來愈大,因此人們充分利用數據的局部性(locality)特徵,經過使用存儲系統分級(memory hierarchy)的策略來減少這種差別帶來的影響。 三、假定之後存儲器訪問變得跟CPU作計算同樣快,cache就能夠消失,可是buffer依然存在。好比從網絡上下載東西,瞬時速率可能會有較大變化,但從長期來看倒是穩定的,這樣就能經過引入一個buffer使得OS接收數據的速率更穩定,進一步減小對磁盤的傷害。 四、TLB(Translation Lookaside Buffer,翻譯後備緩衝器)名字起錯了,其實它是一個cache.
相關文章
相關標籤/搜索