1. 程式人生 > >Linux檔案IO快取總結

Linux檔案IO快取總結

檔案IO快取

使用者空間快取(堆)—IO系統呼叫(write等)—核心空間快取記憶體—磁碟

write後立即返回,後續核心將快取區資料寫入磁碟

read從核心快取記憶體中讀取

設計目的:無需等待磁碟操作,減少磁碟操作

大塊快取空間,更少的系統呼叫,提高IO效能

stdio緩衝形式

setvbuf,setbuf,不緩衝,行緩衝,全緩衝

fflush,重新整理stdio快取->核心快取(通過write)

同步IO資料完整性 fdatasync

讀:磁碟->程序

寫:資料,必要的更新檔案的元資料->磁碟

同步IO檔案完整性 fsync

讀:磁碟->程序

寫:資料,所有更新檔案的元資料

->磁碟

sync 更新檔案資訊

O_SYNC,O_DSYNC,O_RSYNC,posix_fadvise()

直接IO(繞過快取記憶體):O_DIRECT,各種對齊