9、Linux系统编程:文件I/O与缓冲I/O深度解析

Linux系统编程:文件I/O与缓冲I/O深度解析

1. 虚拟文件系统(VFS)对系统程序员的重要性

对于系统程序员而言,虚拟文件系统(VFS)的影响十分关键。他们无需担忧文件所在的文件系统类型或存储介质。通用的系统调用,如 read() write() 等,能够对任何受支持的文件系统和存储介质上的文件进行操作。

2. 页面缓存(Page Cache)

页面缓存是内存中存储的最近从磁盘文件系统访问的数据。由于磁盘访问速度相对处理器速度极慢,将请求的数据存储在内存中,内核可以直接从内存满足后续对相同数据的请求,避免重复的磁盘访问。
- 时间局部性原理 :页面缓存利用了时间局部性这一引用局部性概念,即某一时刻访问的资源在不久的将来很可能再次被访问。因此,首次访问数据时缓存数据所消耗的内存是值得的,因为它避免了未来昂贵的磁盘访问。
- 页面缓存的工作机制 :内核首先在页面缓存中查找文件系统数据。只有当数据不在缓存中时,才会调用内存子系统从磁盘读取数据。首次读取数据时,数据从磁盘传输到页面缓存,再从缓存返回给应用程序。再次读取相同数据时,直接从缓存返回。所有操作都通过页面缓存透明执行,确保缓存数据的相关性和有效性。
- 页面缓存的动态大小 :Linux的页面缓存大小是动态的。随着I/O操作将越来越多的数据带入内存,页面缓存会不断增大,占用可用内存。当页面缓存耗尽所有可用内存,且有新的内存分配请求时,内核会自动修剪页面缓存,释放最少使用的页面,为“实际”内存使用腾出空间。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值