信号驱动IO与异步IO

信号驱动IO

应用进程使用 sigaction 系统调用,内核当即返回,应用进程能够继续执行,也就是说等待数据阶段应用进程是非阻塞的。内核在数据到达时向应用进程发送 SIGIO 信号,应用进程收到以后在信号处理程序中调用 recvfrom 将数据从内核复制到应用进程中。信号驱动 I/O 的 CPU 利用率很高。异步

异步IO

应用进程执行 aio_read 系统调用会当即返回,应用进程能够继续执行,不会被阻塞,内核会在全部操做完成以后向应用进程发送信号。spa

异步 I/O 与信号驱动 I/O 的区别在于,异步 I/O 的信号是通知应用进程 I/O 完成,而信号驱动 I/O 的信号是通知应用进程能够开始 I/Oblog