|
New Member
|
引用:
|
作者darkangel
跟 code 有沒有寫好完全無關。
那是跟系統對儲存裝置採用的 cache 模式有關,所謂的 cache 有兩種模式,一種叫 write through,一種叫 write back。
write through:同步將 cache 的資料寫入儲存體。
write back:會延遲寫入。
通常來說,write back 的效率較佳,所以有些系統(如 Windows XP)預設會採用 write back 的方式來處理 usb 儲存裝置 cache。
這時候系統雖然回應資料寫入完成,但實際上資料還在 cache 中延遲等待寫入,如果冒然的將 usb 拔出,就會發生資料尚未完全寫入的狀況,透過對系統下達移除 usb 裝置,一般會做兩個動作:
1. 強制將 cache 裡的資料寫入儲存裝置裡。(即 flush)
2. 通知驅動程式關閉該 usb 電源。(有的 driver 其實不會做一步)
這也是為什麼有時候我們用移除裝置來移除 USB 會比較保險的原因。
|
小弟還有待加強自己的知識,謝謝前輩的指導
__________________
..................
|