文件系统读写--文件预读 和 文件锁
来源:互联网 发布:学安卓软件开发教程 编辑:程序博客网 时间:2024/06/03 23:46
10.2 文件预读
对于文件请求,Linux内核提供了预读策略,比要求长度多读一些,存储在page cache里,后续读是顺序的,马上可以利用page cache的数据返回,不必再次读硬盘。对于硬盘这种慢速设备而言,利用缓存数据大大提升I/O效率。
struct backing_dev_info default_backing_dev_info = {.ra_pages= (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE,.state= 0,.capabilities= BDI_CAP_MAP_COPY,.unplug_io_fn= default_unplug_io_fn,};EXPORT_SYMBOL_GPL(default_backing_dev_info);
a
10.3 文件锁
读写调用之间没有同步,可能导致 读进程 读取到 被破坏或者不完整的数据。
--建议锁:
应用层实现,内核只提供程序接口,不参与锁的控制和协调,也不对读写操作做内部检查和强制。
如果有进程不检查文件是否有建议锁 就写入数据,内核不加以阻拦。建议锁要求进程遵守规则;建议锁可以对整个文件进行加锁,也可以对文件的一部分进行加锁。
--强制锁:
由内核强制实施。只要进程调用读写操作,内核都会检查与存在的锁是否冲突,如果冲突,内核会加以阻拦。
根据访问方式的不同,文件锁又分为 读锁 、 写锁 。
--读锁 :
允许多个进程同时进行读操作,称为共享锁。文件加了读锁就不能再设置写锁,但允许其他进程再同一区域在设置读锁。
--写锁 :
主要目的是隔离文件,是所写的内容不被其他进程的 读写 干扰,以保证数据的完整性。 写锁一旦加上,只有上锁的人可以操作,其他进程无论读还是写都只能等待写锁释放后才能执行,故写锁又称 互斥锁。
如果一个文件已经被加上了读锁,其他进程再对这个文件进行写 操作就会被内核阻止
如果一个文件已经被加上了写锁,其他进程再对这个文件进行 读取 或者 写操作 就会被内核阻止
阅读全文
0 0
- 文件系统读写--文件预读 和 文件锁
- 文件系统读写--文件读过程代码分析
- Ext2文件系统—文件读写
- Python 文件读写及文件系统
- sysfs文件系统之读写文件
- Linux文件系统之文件的读写
- UBIFS文件系统分析5 - 文件读写
- linux文件系统omfs文件的读写
- Linux文件系统之文件的读写
- Linux文件系统之文件的读写
- 详解ios文件系统文件目录读写操作
- 详解ios文件系统文件目录读写操作
- vxworks dosfs文件系统文件读写测试
- UBIFS文件系统分析5 - 文件读写 .
- Linux文件系统之文件的读写
- Linux文件系统之文件的读写
- linux0.11文件系统文件读写1
- 文件系统 | 文件读写 | 结构体 | 数据库 | 人工智能
- 优秀工程师之—UISegmentedControl
- Java代码的执行顺序
- iOS 代码规范~关闭警告
- 【解决方法】未申明的标识符,查找定义时出现解析多义性
- 你的PagedLOD 为什么没有卸载?
- 文件系统读写--文件预读 和 文件锁
- scrapy 官方文档(入门必备)
- 运维之思科篇 -----6.思科项目练习
- Guest is not running ---KVM
- Cloudera迁移scm数据库
- C++互拆锁
- 冗余计算机项目的调试问题归纳
- 怎么开始并且争取做一个优秀的计算机视觉研究人员
- 递归算法