內存中的Buffer和Cache的區別


Reference:https://time.geekbang.org/column/article/74633

 

磁盤是一個塊設備,可以划分為不同的分區;在分區之上再創建文件系統,掛載到某個目錄,之后才可以在這個目錄中讀寫文件。

其實 Linux 中“一切皆文件”,而提到的“文件”是普通文件,磁盤是塊設備文件,可以執行 "ls -l <路徑>" 查看它們的區別。

在讀寫普通文件時,會經過文件系統,由文件系統負責與磁盤交互;而讀寫磁盤或者分區時,就會跳過文件系統,也就是所謂的“裸I/O“。

這兩種讀寫方式所使用的緩存是不同的,也就是 Cache 和 Buffer 區別。

  • Buffer 既可以用作“將要寫入磁盤數據的緩存”,也可以用作“從磁盤讀取數據的緩存”。
  • Cache 既可以用作“從文件讀取數據的頁緩存”,也可以用作“寫文件的頁緩存”。

簡單來說,Buffer 是對磁盤數據的緩存,而 Cache 是文件數據的緩存,它們既會用在讀請求中,也會用在寫請求中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM