星期三, 12月 08, 2010

Linux Asynchronous I/O and Synchronous I/O

一般常見 system call 的 read, write 都屬於 synchronous I/O, 然而這類型的 I/O 在做
Blocking 操作時, 等待時間就被浪費掉了, 而在做 Non-blocking 操作時, 因為要不斷的檢查狀態而產生過多 context switch 的浪費.
Asynchronous I/O 在做 Non-blocking 操作時, 可以等待系統狀態自動回傳再做處理, 這段時間 CPU 可以去做其他的事, 善用 AIO 可以讓程式更有效率.
以下文章介紹了 AIO 與一般 IO 在 blocking 與 non-blocking 的差異, 以及 aio function 的實例.

AIO 詳細介紹(原文) 中文版在這


另外可以參考 linux/fs.h 中的 struct file_operations。

沒有留言: