Linux——信号驱动IO

本文介绍了Linux中的信号驱动IO,区别于异步IO,并详细讲解了System V、BSD和Linux各自对信号驱动IO的实现。通过设置SIGIO和SIGURG信号,可以实现进程在socket有事件发生时被通知,从而避免轮询机制。在UDP和TCP套接字上,信号驱动IO有不同的应用情况。
摘要由CSDN通过智能技术生成

 

装了4天的操作系统 。。。呵呵收获颇多。

缅怀Stevens大师。

最好的参考资料:

1.师从互联网。

2.Linux man 命令:man 7 signal,man 7 socket。

3.UNP v1第25章 。

第一条:概述 

信号驱动IO,不是异步IO。

信号驱动IO是指:进程预先告知内核,使得 当某个socketfd有events(事件)发生时,内核使用信号通知相关进程。

异步IO(Asynchronous IO)是指:进程执行IO系统调用(read / write)告知内核启动某个IO操作,内核启动IO操作后立即返回到进程。IO操作即内核当中的服务例程。Posix 通过 aio_XXX函数提供真正的异步IO(参见 man 7 aio).

linux 2.6.35中定义的相关信号:

 

#define SIGPOLL SIGIO /* Pollable event occurred (System V).  */

#define SIGIO 29 /* I/O now possible (4.2 BSD).  */

 

第二条: System 信号驱动IO。

System V Asynchronous I/O

 

APUE的描述:In System V, asynchronous I/O is part of the STREAMS system and works only with STREAMS devices and STREAMS pipes. The System V asynchronous I/O signal i

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值