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


一, 异步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操作完成后线程才
醒来继续执行。
请使用浏览器的分享功能分享到微信等