非同期IOシステムコールを呼び出すとします。システムコールが呼び出されると、モードはユーザーモードからカーネルモードに変わります。呼び出し直後は、ユーザーアプリケーションをさらに実行できるように、モードをユーザーモードに戻す必要があります(非ブロックなので)。
モードがユーザーモードに変更された場合、モードがカーネルからユーザーモードに変更されたときにカーネルはIOをどのように処理しますか?カーネルはユーザーモードで非同期IOを実行しますか?
ベストアンサー1
AIOを使用したいプロセスは、io_setup()を介してAIOコンテキスト(kioctx)を生成します。 AIOコンテキストにはリングバッファ(aio_ring_info)があります。このメモリバッファはプロセスのアドレス空間にありますが、カーネルからアクセスできます。