異步io libaio.so

Linux 異步IO

使 用Linux異步IO有兩種途徑:一是使用posix標準的庫函數,好處是移植性好;二是使用Linux系統調用,好處是穩定性能更高。Posix標準庫 函數以“aio_”打頭,如aio_read,而系統調用以“io_”打頭,如io_submit。具體的使用,請上Google或百度吧。
io_xxx是內核態AIO
aio_xxx是用戶態AIO

ps -ef看到的“[aio/0]”是內核線程,爲內核態AIO服務 的。實際上AIO就是在調用者和IO操作間加入了一個隊列。我們經常使用epoll/select等,常常將數據 收到後,放到一個消息隊列,然後交給其它線程處理 ,這個實際上就是一個異步操作。

對於 內核態AIO ,如果文件 不是以 O_DIRECT 打開或創建的,則 io_submit 操作將不是異步的,而是阻塞式的,和普通的read/write類似。


用戶態AIO庫文件 :/usr/lib/librt .so
內核態AIO庫文件 :/usr/lib/libaio .so

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章