标准IO和直接IO

简介: 标准IO和直接IO

标准IO访问方式

直接IO访问方式(open +O_DIRECT=绕过内核缓冲区直接访问,有效避免CPU和内存多余时间的开销)

注意:直接I/0的缺点就是如果访问的数据不在应用程序缓存中,那么每次数据都会直接从磁盘进行加载,这种直接加载会非常缓慢。通常直接I/0跟异步I/0结合使用会得到较好的性能。

O_DIRECT 不等于 O_SYNC(同步io), 后者只对写数据有效,它会将内核缓冲区的数据立即写入到磁盘,将机器故障时数据的丢失减小到最小,但数据仍然需要经过内核缓冲区。

缓存同步:

 

目录
相关文章
|
5月前
|
缓存 Linux API
文件IO和标准IO的区别
文件IO和标准IO的区别
56 2
|
3月前
|
存储 Linux 编译器
基础IO(下)
文件系统管理不仅涉及打开的文件,未打开的文件也需要管理,核心是快速定位文件以便通过路径访问。操作系统管理磁盘时,通过选择磁头、磁道和扇区进行寻址。磁盘逻辑上被抽象为数组,通过下标定位。文件系统将大磁盘分割管理,如分区、块组,每个文件对应唯一的inode,存储属性和内容。文件创建和删除涉及inode和数据块的分配与回收。文件查找通过路径确定分区,挂载将文件系统与分区关联。软链接通过路径引用,硬链接共享inode。静态库在编译时链接,动态库在运行时加载,动态链接节省资源。文件系统和库管理涉及内存、磁盘和程序执行的复杂交互。
44 2
基础IO(下)
|
3月前
|
存储 Linux 开发工具
基础IO(上)
本文主要讲述了文件描述符、重定向以及缓冲区的概念和运用。
29 1
基础IO(上)
day26-系统IO(2022.2.23)
day26-系统IO(2022.2.23)
|
缓存 Linux C语言
基础IO+文件(一)
基础IO+文件
77 0
|
存储 Linux 块存储
基础IO+文件(二)
基础IO+文件
66 0
|
编译器 Linux vr&ar
基础IO+文件(三)
基础IO+文件
71 0
|
存储 Linux 文件存储
基础IO详解(一)
基础IO详解
107 0
|
存储 Linux C语言
基础IO详解(二)
基础IO详解
89 0