記憶體,是儲存器,用於輔助CPU輸入輸出資料進行運算。 CACHE,是一種特殊的記憶體。因為主記憶體速度不夠快,用少量的特別快的但特別昂貴的記憶體來做快取加速。就是cache。兩者都是ram中的資料。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。快取(cached)是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。快取(cache)實際並不是緩衝檔案的,而是緩衝塊的,塊是磁碟i/o操作的最小單元(在linux中,它們通常是1kb)。這樣,目錄、超級塊、其它檔案系統的薄記資料以及非檔案系統的磁碟資料都可以被緩衝了。如果快取有固定的大小,那麼快取太大了也不好,因為這會使得空閒的記憶體太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際記憶體,linux自動地使用所有空閒的記憶體作為高速緩衝,當程式需要更多的記憶體時,它也會自動地減小緩衝的大小。緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統性能。linux有一個守護程序定期清空緩衝內容(即寫磁碟),也可以透過sync命令手動清空緩衝。舉個例子吧:我這裡有一個ext2的u盤,我往裡面cp一個3m的mp3,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。解除安裝裝置時會清空緩衝,所以有些時候解除安裝一個裝置時要等上幾秒鐘。buffer是由各種程序分配的,由程序和系統一起管理.被用在如輸入佇列等方面,一個簡單的例子如某個程序要求有多個欄位讀入,在所有欄位被讀入完整之前,程序把先前讀入的欄位放在buffer中儲存。cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統性能。綜上所述可以理解為cache系統管理,buffer由程序和系統一起管理。
記憶體,是儲存器,用於輔助CPU輸入輸出資料進行運算。 CACHE,是一種特殊的記憶體。因為主記憶體速度不夠快,用少量的特別快的但特別昂貴的記憶體來做快取加速。就是cache。兩者都是ram中的資料。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。快取(cached)是把讀取過的資料儲存起來,重新讀取時若命中(找到需要的資料)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的資料會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。快取(cache)實際並不是緩衝檔案的,而是緩衝塊的,塊是磁碟i/o操作的最小單元(在linux中,它們通常是1kb)。這樣,目錄、超級塊、其它檔案系統的薄記資料以及非檔案系統的磁碟資料都可以被緩衝了。如果快取有固定的大小,那麼快取太大了也不好,因為這會使得空閒的記憶體太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際記憶體,linux自動地使用所有空閒的記憶體作為高速緩衝,當程式需要更多的記憶體時,它也會自動地減小緩衝的大小。緩衝(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反覆尋道,從而提高系統性能。linux有一個守護程序定期清空緩衝內容(即寫磁碟),也可以透過sync命令手動清空緩衝。舉個例子吧:我這裡有一個ext2的u盤,我往裡面cp一個3m的mp3,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。解除安裝裝置時會清空緩衝,所以有些時候解除安裝一個裝置時要等上幾秒鐘。buffer是由各種程序分配的,由程序和系統一起管理.被用在如輸入佇列等方面,一個簡單的例子如某個程序要求有多個欄位讀入,在所有欄位被讀入完整之前,程序把先前讀入的欄位放在buffer中儲存。cache經常被用在磁碟的i/o請求上,如果有多個程序都要訪問某個檔案,於是該檔案便被做成cache以方便下次被訪問,這樣可提供系統性能。綜上所述可以理解為cache系統管理,buffer由程序和系統一起管理。