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。
沒有留言:
張貼留言