信号驱动 IO
对于信号驱动 IO 来说,读操作的流程如下所示:
当用户进程发起 sigaction
系统调用后,这个系统调用会马上返回。内核在准备好数据后会向用户进程发送 SIGIO
信号,用户进程收到信号之后会在信号处理程序中发起 recvfrom
系统调用将数据从内核缓冲区复制到用户进程缓冲区中,至此 IO 的两个阶段全部完成。
因此,对于信号驱动 IO 来说,用户进程在 IO 的第二个阶段被 recvfrom
系统调用阻塞了。
对于信号驱动 IO 来说,读操作的流程如下所示:
当用户进程发起 sigaction
系统调用后,这个系统调用会马上返回。内核在准备好数据后会向用户进程发送 SIGIO
信号,用户进程收到信号之后会在信号处理程序中发起 recvfrom
系统调用将数据从内核缓冲区复制到用户进程缓冲区中,至此 IO 的两个阶段全部完成。
因此,对于信号驱动 IO 来说,用户进程在 IO 的第二个阶段被 recvfrom
系统调用阻塞了。