【アイオーウリング】
io_uring とは?
最終更新:
💡 I/Oのお願いと結果を、共有キューでやり取り
Linuxの非同期I/Oインターフェース。アプリとカーネルが共有する投入キューSQと完了キューCQで、要求と結果をやり取りする。まとめた投入などで負担を減らせるが、常に高速になるとは限らない。
📌 このページのポイント
Linuxで、何をする仕組みなの?
非同期なら、待つことはない?
要求することと、結果を受け取ることを分けられるという意味だよ。完了まで別の仕事を進められるけれど、結果が必要なら待つこともある。io_uring_enterでは指定した数の完了を待つ使い方もできる。I/O自体の所要時間がなくなるわけではないんだ。
共有キューに書けば、勝手に動くの?
結果は、お願いした順に返るの?
どんなアプリでも、すごく速くなる?
📖 おまけ:英語の意味
「io_uring」 = I/Oを共有するリングのインターフェース
💬 I/Oは入出力。要求と完了結果にリングバッファを使う名前だよ。「リング」は位置を先頭に戻して再利用する方式で、メモリが物理的に輪になるわけではないんだ