首页 > 编程知识 正文

linux系统编码posix,linux重装系统教程

时间:2023-05-03 06:39:51 阅读:18844 作者:328

小典典

在linux上,这两个AIO的实现截然不同。

POSIX AIO是一种用户级实现,它允许在多个线程上执行常规的块I/O,从而给人一种I/O异步的错觉。 其主要理由如下

适用于任何文件系统

这“基本上”可以在任何操作系统上运行。 请注意gnu的libc是可移植的。

应用于启用了缓冲区的文件,即未设置O_DIRECT标志的文件

主要缺点是队列深度,即实际可执行的未完成操作的数量受选定线程的数量的限制。 也就是说,在一个磁盘上执行慢速操作可能会阻止对一个磁盘的操作。 不同的磁盘。 它还会影响内核和磁盘调度程序识别的I

/O (或多少钱)。

内核AIO,即io_submit (等)是内核对异步I /

o操作支持。 实际上,I/o请求是在内核中排队的,并按其拥有的磁盘调度程序进行排序。 也许,一些传输可以使用TCQ或NCQ以最佳顺序对实际磁盘执行异步操作。 此方法的主要限制是,并非所有文件系统都支持异步I

由于在/O中不起作用或根本不起作用,因此必须使用O_DIRECT打开文件。 O_DIRECT还有很多其他限制。 I /

o拜托了。 如果无法使用O_DIRECT打开文件,则可能可以“工作”,就像返回正确的数据一样,但可能会返回块语义,而不是异步完成。

请注意,在某些情况下,io_submit ()实际上可以阻止在磁盘上。

2020-06-03

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。