适用于 Microsoft Vista 的 ReadyBoost

适用于 Microsoft Vista 的 ReadyBoost

微软的内在逻辑是什么准备好提振

即使是理论上的答案也可以。

答案1

ReadyBoost 由一个在服务主机进程中运行的服务 (%SystemRoot%\System32\Emdmgmt.dll) 和一个卷过滤驱动程序 (%SystemRoot%\System32\Drivers\Ecache.sys) 组成。(Emd 是“外部存储设备”的缩写,是 ReadyBoost 在开发过程中的工作名称。)当您将 USB 密钥之类的闪存设备插入系统时,ReadyBoost 服务会查看该设备以确定其性能特征,并将其测试结果存储在 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Emdmgmt 中。

如果您的闪存设备足够快并且您同意,该服务会在设备的根目录中创建一个名为 Ready Boost.sfcache 的缓存文件,它将用于存储缓存页面(初始缓存是通过查询 SuperFetch 的缓存构建的,但后续内容完全由 ReadyBoost 独立管理)。

在 ReadyBoost 服务初始化缓存后,Ecache.sys 设备驱动程序会拦截对本地硬盘卷的所有读取和写入,并将正在读取或写入的任何数据复制到服务创建的缓存文件中,但某些例外情况除外,例如很长时间未读取的数据或属于卷快照请求的数据。Ecache.sys 会压缩数据,通常可达到 2:1 的压缩率,因此 4 GB 的缓存文件通常包含 8 GB 的数据。驱动程序使用 AES 加密和随机生成的每次启动会话密钥对其写入的每个块进行加密,以便在设备从系统中移除时保证缓存中数据的隐私。

当 ReadyBoost 发现可以从缓存中满足随机读取时,它会从缓存中为这些读取提供服务,但由于硬盘的顺序读取访问性能优于闪存,因此即使数据在缓存中,它也会让属于顺序访问模式的读取直接进入磁盘。同样,在读取缓存时,如果必须执行大量 I/O,则会改为读取磁盘上的缓存。

这来自《Windows Internals Book》,为了适合作为答案,它被缩短了。

相关内容