王磊的个人技术记录 王磊的个人技术记录

记录精彩的程序人生

目录
信号驱动IO与异步IO
/  

信号驱动IO与异步IO

版权声明:本文为CSDN博主「uestcprince」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uestcprince/article/details/90734564

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

null

异步IO
应用进程执行 aio_read 系统调用会立即返回,应用进程可以继续执行,不会被阻塞,内核会在所有操作完成之后向应用进程发送信号。

null

异步 I/O 与信号驱动 I/O 的区别在于,异步 I/O 的信号是数据拷贝完成后通知应用进程 I/O 完成,而信号驱动 I/O 的信号是通知应用进程可以开始数据拷贝 I/O。


标题:信号驱动IO与异步IO
作者:wanglei03
地址:https://wangleijava.com/articles/2019/12/05/1575550211626.html