1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows04

马洪兵 清华大学电子工程系 hbma@tsinghua.edu.cn, Windows 的高速缓存管理 内存映射文件 实习3. 快速文件系统问题 Windows的高速缓存管理 磁盘高速缓存管理的基本原理 Windows 高速缓存管理的主要特征 高速缓存的结构 高速缓存的大小 高速缓存的数据结构 高速缓存的操作 访问缓存数据的方法 磁盘高速缓存管理的基本原理 Windows高速缓存管理的主要特征 单一集中式系统高速缓存 任何数据都能被高速缓存,无论它是用户数据流(文件内容和在这个文件上正在进行读和写的活动)或是文件系统的元数据(metadata)(例如目录和文件头) 与内存管理器结合 因为它采用将文件视图映射到系统虚拟空间的方法访问数据 Windows高速缓存管理的主要特征 Windows高速缓存管理的主要特征 虚拟块缓存 Windows 2000/XP/2003高速缓速管理器用虚拟块缓存方式,管理器对缓存中文件的某些部分进行追踪。通过内存管理器的特殊系统高速缓存例程将256-KB大小的文件视图映射到系统虚拟地址空间,高速缓存管理器能够管理文件的这些部分。这种方式有以下几个主要特点: 它使智能的文件预读成为可能。 它允许I/O系统绕开文件系统访问已经在缓存中的数据(快速I/O)。 Windows高速缓存管理的主要特征 基于流的缓存 可恢复的文件系统支持 文件系统写一个日志文件记录,记录将要进行的卷修改操作。 文件系统调用高速缓存管理器将日志文件记录刷新到磁盘上。 文件系统把卷修改内容写入高速缓存,即修改文件系统在高速缓存的元数据。 高速缓存管理器将被更改的元数据刷新到磁盘上,更新卷结构。 高速缓存的结构 高速缓存的结构 高速缓存的大小 缓存区的虚拟大小 系统高速缓存虚拟大小是已安装物理内存总量的函数 高速缓存的大小 缓存的物理大小 系统高速缓存没有自己的工作集而是与页缓冲池、可分页的核心代码以及可分页的驱动程序代码共用一个系统工作集,系统高速缓存只是这个工作集的一个组成部分 高速缓存的数据结构 在系统高速缓存中的每个256 KB的槽由一个VACB描述。 每个打开的被缓存文件有一个专用的缓存映射,它包含了用于控制文件预读的信息。 每个被缓存的文件有一个单独的共享缓存映射结构,它指向系统缓存中包含此文件映射视图的槽。 高速缓存的操作 回写缓存和延迟写 写入文件的数据首先被存储在高速缓存页面的内存中,然后再被写入磁盘。因此,写操作允许在短时间内积累,并一次性刷新到磁盘,这可以减少磁盘的I/O次数。 屏蔽对文件延迟写 在调用Win32 CreateFile函数时指定FILE_ATTRIBUTE_TEMPORARY标志创建一个临时文件,延迟写器就不会将脏页写回磁盘,除非物理内存严重不足或文件关闭。 高速缓存的操作 强制写缓存到磁盘 由于一些应用程序不允许在向磁盘写文件和查看磁盘数据更新之间出现即使很短的延迟,所以高速缓存管理器也支持基于单个文件的通写高速缓存,即数据一改变被立即写入磁盘。要启动通写高速缓存,需要在调用CreateFile函数时设置FILE_FLAG_WRITE _THROUGH标志。 刷新被映射的文件 调用FlushFileBuffers函数,高速缓存管理器将缓存中的脏页写入磁盘,然后检查文件是否被其他进程映射。如果文件也被其他进程映射了,那么高速缓存管理器把文件区域所对应的整个视图刷新一遍,以便将第二个进程可能改变的页面写入磁盘。 高速缓存的操作 虚拟地址预读 解决缺页时,将被访问页面相近的几个页一起读到内存中。内存管理器的这种方法的缺点是:必须同步进行,因为这种预读方式是在处理页面错误的上下文中进行的 带历史信息的异步预读 高速缓存管理器在文件的私有缓存映射结构中为正在被访问的文件句柄保存最后两次读请求的历史信息 访问缓存数据的方法 拷贝读取 用户程序读写缓存文件时必须依靠核心态的例程的服务,这些核心态的例程在系统空间中的高速缓存数据缓冲区和用户空间中的进程数据缓冲区之间拷贝用户数据; 访问缓存数据的方法 映射暂留 文件系统驱动程序需要读写描述文件自身的数据(元数据或卷结构数据)时,可以使用虚拟地址直接读写高速缓存的数据缓冲区。 访问缓存数据的方法 物理内存访问 物理地址直接读写高速缓存的数据缓冲区。 DMA接口将被高速缓存的用户数据的物理地址返回给文件系统(而不是虚地址,虚地址是映射和暂留接口返回的),这个物理地址用于直接从物理内存与外部设备之间传输数据。 虽然少量的数据能够用一般的基于缓冲区的接口来传输,但对于大量数据传输,如网络服务器处理远程系统的文件请求,DMA接口能够显著的提高性能。 内存映射文件 内存映射文件 使用方法 内存映射文件的应用 使用过程 使用过程 内存映射

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档