加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

5分钟搞懂Linux中直接I/O原理

发布时间:2019-06-15 01:10:33 所属栏目:移动互联 来源:源理君头条号
导读:在先容直接 I/O 之前,先来先容下直接I/O这种机制发生的缘故起因。事实已经有了缓存I/O(Buffered I/O),那必定可以或许像到缓存I/O有缺陷吧,就凭证这个思绪来。 什么是缓存 I/O (Buffered I/O) 缓存 I/O 又被称作尺度 I/O,大大都文件体系的默认 I/O 操纵都是缓

该函数将要读可能要写的数据举办拆分,并搜查缓冲区对齐的环境。本文在前边先容 open() 函数的时辰指出,行使直接 I/O 读写数据的时辰必必要留意缓冲区对齐的题目,从上边的代码可以看出,缓冲区对齐的搜查是在 __blockdev_direct_IO() 函数里边举办的。用户地点空间的缓冲区可以通过 iov 数组中的 iovec 描写符确定。直接 I/O 的读操纵可能写操纵都是同步举办的,也就是说,函数 __blockdev_direct_IO() 会一向比及全部的 I/O 操纵都竣事才会返回,因此,一旦应用措施 read() 体系挪用返回,应用措施就可以会见用户地点空间中含有响应数据的缓冲区。可是,这种要领在应用措施读操纵完成之前不能封锁应用措施,这将会导致封锁应用措施迟钝。

直接I/O 利益

最大的利益就是镌汰操纵体系缓冲区和用户地点空间的拷贝次数。低落了CPU的开销,和内存带宽。对付某些应用措施来说的确是福音,将会大大进步机能。

直接I/O 弱点

直接IO并不总能让人快意。直接IO的开销也很大,应用措施没有节制好读写,将会导致磁盘读写的服从低下。磁盘的读写是通过磁头的切换到差异的磁道上读取和写入数据,假如必要写入数据在磁盘位置相隔较量远,就会导致寻道的时刻大大增进,写入读取的服从大大低落。

总结

直接IO方法确实可以或许镌汰CPU的行使率以及内存带宽的占用,可是偶然辰也会造成机能的影响。以是在行使直接IO之前必然要清晰它的道理,只有在各项都清楚的环境下,才思量行使。本人只是先容了道理,如想深入,提议参考内核相干文档。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读