瀏覽單個文章
ask43301
New Member
 
ask43301的大頭照
 

加入日期: Feb 2005
文章: 8
引用:
作者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 會比較保險的原因。


小弟還有待加強自己的知識,謝謝前輩的指導
__________________
..................
舊 2013-05-25, 06:34 PM #23
回應時引用此文章
ask43301離線中