【翻译WINDOWS NT FILE SYSTEM INTERNAL】NT缓存管理器一(2)

来源:互联网 发布:mysql 查询时间格式化 编辑:程序博客网 时间:2024/05/29 10:11

功能

NT缓存管理器是NT执行体中一个distinct component(清晰的组件),而且他和NT虚拟内存管理器密切合作。

它位存储在二级存储设备上的数据提供(consistent systemwide cache)一致的全系统范围的数据缓存.这些缓存被适当关联的文件系统驱动管理,并与虚拟内存管理器和I/O管理器协同作业。

他为文件数据执行预读。缓存管理器尝试根据每个文件数据的应用程序访问模式来调整它的缓存策略。因为所有到被缓存文件的I/O请求都要经过缓存管理器,所以缓存管理器可以跟踪文件数据的访问模式。因此,如果一个应用程序读一个文件的前10K字节,NT缓存管理器将把接下来的64K字节文件数据预读进内存。随后,如果应用程序尝试获取这些数据,这些数据可以简单的从系统缓存中拷贝,得以避免应用程序等待直到数据被从二级存储中读出。对于连续读文件操作,缓存管理器的预读功能可以带来明显的性能提升,因为在应用程访问哪些数据之前,数据已经被读入到system volatile memory(系统易失性内存)。

它为被修改的缓存数据提供延迟写功能。通过在写入硬盘之前,将被修改数据在内存中保持一段时间,缓存管理器为实际执行写操作的应用程序提供较强的响应能力。它仅仅是将一批并发的邻近的内存写操作和写出所有被修改数据字节的操作放入一个单独的I/O操作,这显然比单独执行每个小的写操作效率更高。最后,一个应用程序可以重复的修改相同的字节围成为可能。为了延迟I/O到磁盘,一些修改可以仅在内存中进行,避免完全的overhead(过度的)重复对媒介执行写操作。