linux异步通知与异步I/O笔记

本文深入探讨了异步通知机制在I/O操作中的应用,解释了与阻塞I/O、非阻塞I/O的区别,并详细介绍了AIO(Asynchronous Input/Output)的概念、结构以及kiocb描述符的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


原文:http://www.cnblogs.com/hanyan225/archive/2010/10/20/1857040.html


异步通知:一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态。

阻塞I/O意味着一直等待设备可访问再访问,非阻塞I/O意味着使用poll()函数来查询是否可访问,而异步通知则意味着设备通知应用程序自身可访问。

AIO:Asynchronous Input/Output异步输入/输出,基本思想是允许进程发起很多的I/O操作,而不用阻塞或等待任何操作的完成,稍后或在接收到I/O操作完成的通知时,进程就可以检索I/O操作的结果。每个操作需要有一个唯一的上下文,这样才能在它们完成时区分到底是哪个传输操作完成了。在AIO中,通过aiocb(AIO IO control block)结构体进行区分。

struct aiocb {
	int		aio_fildes;	/* File descriptor */
	off_t		aio_offset;	/* File offset */
	volatile void *	aio_buf;	/* Location of buffer */
	size_t		aio_nbytes;	/* Length of transfer */
	int		aio_reqprio;	/* Request priority offset */
	struct sigevent	aio_sigevent;	/* Signal number and value */
	int		aio_lio_opcode;	/* Operation to be performed */
};

kiocb描述符用来跟踪正在运行的同步和异步I/O操作的完成状态。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值