一、基本概念
同步I/O操作请求发出后,应用程序会阻塞,直到请求满足为止。
异步I/O的基本思想是允许进程发起很多I/O操作,而不用阻塞或等待任何操作的完成。稍后再接到I/O操作完成通知时,进程再检索I/O操作的结果。
异步通知是指在访问设备中,一旦设备就绪,驱动程序主动通知应用程序,这样应用程序就不需要查询设备的状态了。
二、异步通知
异步通知需要在驱动程序中实现fasync()函数,并且在资源可获得时,调用kill_fasync()发出相应信号。应用程序调用fcntl()函数启动异步通知机制。
三、异步I/O
信号和回调函数是实现内核空间对用户空间应用程序通知的两种机制。在应用程序中,可以使用AIO的API访问资源。字符设备驱动程序要实现异步I/O操作,需要实现file_operations中三个与AIO相关的函数。