谁执行任务的阅读?它是内核?哪个任务排队?所有进程的队列是否相同?的Unix - 异步读取(的aio_read)
http://linux.die.net/man/3/aio_read
的的aio_read()函数队列由缓冲器 由aiocbp指出所描述的I/O请求。此功能是 读(2)的异步模拟。
谁执行任务的阅读?它是内核?哪个任务排队?所有进程的队列是否相同?的Unix - 异步读取(的aio_read)
http://linux.die.net/man/3/aio_read
的的aio_read()函数队列由缓冲器 由aiocbp指出所描述的I/O请求。此功能是 读(2)的异步模拟。
,内核在进程的请求的I/O请求。这个过程会执行其他的事情。由于I/O通常比内存操作慢得多,这意味着在读取完成之前,进程可以完成很多工作。在I/O异步完成,这意味着过程中不堵塞,不坐在那里什么都不做,而I/O子系统转到磁盘并返回数据。
的比喻是:你问一个朋友,让你一杯水,当你吃。当朋友得到水时,你继续吃东西。当朋友回来后,你喝水。那是异步交付一杯水。同步意味着你坐在桌旁无所事事,无法做任何事情,而是要等待水
玻璃根据我的理解,该任务由调用aio_read的进程执行。结果应在原始调用中提供的返回缓冲区中排队。这意味着,取决于流程及插座它试图读取你的输出将是即使同时运行不同的,因为他们将不得不存储在不同的缓冲器。
希望这是有益的。有关更多信息,我想看看IBM的来源我下面贴
Asynchronous I/O is currently only supported for sockets. The aio_offset field may be set but it will be ignored.