缓存与文件系统深度解析
1. 缓存管理器基础操作
缓存管理器在文件读写操作中扮演着关键角色。在读取操作时,它将数据从缓存复制到请求数据的进程缓冲区;而在写入操作时,则将数据从进程缓冲区复制到缓存。以下是具体操作后的不同情况:
- 读取操作 :若文件打开时未指定 FILE_FLAG_RANDOM_ACCESS 标志,调用者私有缓存映射中的预读信息会被更新。对于未指定 FO_RANDOM_ACCESS 标志的文件,预读操作也可能会被排队执行。
- 写入操作 :缓存中任何被修改页面的脏位会被设置,以便延迟写入器知道将这些页面刷新到磁盘。对于直写式文件,任何修改都会立即刷新到磁盘。
下面是一个关于快速 I/O 决策树的 mermaid 流程图:
graph TD
A[Generate IRP] --> B{NtReadFile}
B --> C{Synchronize and cached data?}
C -->|No| D{Fast I/O possible?}
C -->|Yes| E{Is file cached?}
D -->|No| F[File system driver]
D -->|Yes| G[Cache manager copies data to or from process buffer]
E -->|No| F
E -->|Yes|
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



