回覆列表
  • 1 # 使用者2342335691113

    兩者都是RAM中的資料。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。

    快取(cache)實際並不是緩衝檔案的,而是緩衝塊的,塊是磁碟I/O操作的最小單元(在Linux中,它們通常是1KB)。這樣,目錄、超級塊、其它檔案系統的薄記資料以及非檔案系統的磁碟資料都可以被緩衝了。

    如果快取有固定的大小,那麼快取太大了也不好,因為這會使得空閒的記憶體太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際記憶體,Linux自動地使用所有空閒的記憶體作為高速緩衝,當程式需要更多的記憶體時,它也會自動地減小緩衝的大小。

    緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統性能。linux有一個守護程序定期清空緩衝內容(即寫磁碟),也可以透過sync命令手動清空緩衝。舉個例子吧:我這裡有一個ext2的隨身碟,我往裡面cp一個3M的 MP3,但隨身碟的燈沒有跳動,過了一會兒(或者手動輸入sync)隨身碟的燈就跳動起來了。解除安裝裝置時會清空緩衝,所以有些時候解除安裝一個裝置時要等上幾秒鐘。

    buffer是由各種程序分配的,由程序和系統一起管理.被用在如輸入佇列等方面,一個簡單的例子如某個程序要求有多個欄位讀入,在所有欄位被讀入完整之前,程序把先前讀入的欄位放在buffer中儲存。

    cache經常被用在磁碟的I/O請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統性能。

    綜上所述可以理解為cache系統管理, buffer由程序和系統一起管理.

  • 中秋節和大豐收的關聯?
  • 用一句話形容你工作的城市?