非同步IO,同步IO,Direct IO,FILESYSTEMIO_OPTIONS, DISK_ASYNCH_IO [final]

tolywang發表於2013-03-20

一, 非同步IO與同步IO

--- 非同步IO

非同步檔案IO方式中,執行緒傳送一個IO請求到核心,然後繼續處理其他的事情,核心完
成IO請求後,將會通知執行緒IO操作完成了。

比如將一個程式所做的IO部分的工作 可以交給多個從屬程式去完成,但是呼叫仍然
是真正的成功(寫入磁碟)後才返回成功,交出去後主程式可以做其他事情,等IO處理
完成後再通知主程式來繼續處理。
 
例子:

Oracle DBWR 負責蒐集dirty buffer ,  slaves負責寫磁碟
 
Checkpoint 的成功過程是:
dbwr 蒐集dirty buffer ,交給 slave 寫磁碟,寫完畢通知dbwr ,然後dbwr才返回檢查點完成
 
但是在 slave 寫磁碟的過程中,dbwr 可以去做別的事情,比如蒐集dirty buffer ,但並不是
說這個任務已經完成 (寫磁碟完成後才通知檢查點完成) 

--- 同步IO

在同步檔案IO中,執行緒啟動一個IO操作然後就立即進入等待狀態,直到IO操作完成後執行緒才
醒來繼續執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-759700/,如需轉載,請註明出處,否則將追究法律責任。

相關文章