63、Windows 系统缓存与文件系统的深入解析

Windows 系统缓存与文件系统的深入解析

1. 文件的延迟写入禁用

在调用 Windows 的 CreateFile 函数时,如果指定了 FILE_ATTRIBUTE_TEMPORARY 标志来创建临时文件,那么延迟写入器(lazy writer)不会将脏页写入磁盘,除非出现物理内存严重短缺或者文件被显式刷新的情况。这种延迟写入的特性有助于提高系统性能,因为延迟写入器不会立即将可能最终会被丢弃的数据写入磁盘。通常,应用程序在关闭临时文件后不久就会将其删除。

2. 强制缓存写入磁盘

有些应用程序无法容忍文件写入和磁盘更新之间哪怕是瞬间的延迟,因此缓存管理器支持按文件对象进行直写式缓存(write-through caching),即数据一旦被修改就会立即写入磁盘。要开启直写式缓存,可在调用 CreateFile 函数时设置 FILE_FLAG_WRITE_THROUGH 标志。另外,线程在需要将数据写入磁盘时,也可以使用 Windows 的 FlushFileBuffers 函数显式刷新打开的文件。

3. 刷新映射文件

当延迟写入器需要将数据从一个视图写入磁盘,而该视图又被映射到另一个进程的地址空间时,情况会变得稍微复杂一些。因为缓存管理器只知道它自己修改过的页面(其他进程修改的页面只有该进程知道,因为修改页面的页表条目中的修改位保存在进程的私有页表中)。为了解决这个问题,当用户映射文件时,内存管理器会通知缓存管理器。当缓存中的文件被刷新时(例如,调用 Windows

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值