由于调用系统调用时,会从用户态切换到内核态,从而进行上下文切换,而上下文切换会消耗一定的 CPU 时间。
io_uring 为了减少或者摒弃系统调用,采用了用户态与内核态 共享内存 的方式来通信。

-
第一步:应用程序通过向
io_uring的提交队列提交 I/O 操作。 -
第二步:SQ内核线程从
提交队列中读取 I/O 操作。 -
第三步:SQ内核线程发起 I/O 请求。
-
第四步:I/O 请求完成后,SQ内核线程会将 I/O 请求的结果写入到
io_uring的完成队列中。 -
第五步:应用程序可以通过从
完成队列中读取到 I/O 操作的结果。




















