假设我们调用异步 IO 的系统调用。调用系统调用时,模式从用户态转变为内核态。调用后,模式应立即更改回用户模式,以便用户应用程序可以进一步执行(因为它是非阻塞的)。
现在,如果模式更改为用户模式,那么当模式从内核更改为用户模式时,内核将如何处理 IO?内核会在用户模式下执行异步IO吗?
答案1
想要使用 AIO 的进程通过 io_setup() 创建 AIO 上下文 (kioctx)。 AIO 上下文有一个环形缓冲区 (aio_ring_info)。该内存缓冲区将位于进程的地址空间中,但可由内核访问。