2 延迟执行IO操作
驱动程序发现设备资源可用时,应该及时处理待处理的异步IO请求。比如说,如果成功写入了一些字节,有数据可供读取了,则可以处理队列中的异步读取请求。同样地,如果成功读取了一些字节,有空闲空间容纳数据了,则可以处理队列中的异步写入请求。执行排队待处理的异步IO请求的代码为:
l 第一部分:从队列中取出一个异步IO请求
l 第二部分:处理异步IO请求
l 第三部分:更新IO请求状态。如果已经传输完成所有请求的字节,或者发生错误,则调用aio_complete通知用户进程IO操作已经完成。这个函数由内核代码提供。
l 第四部分:与第一节第六部分的代码功能相同。同样地,在这里处理其他待处理的IO请求是不合适的。