我正在调查Windows内核相对于内存映射文件/虚拟内存的行为。具体而言,我有兴趣确定内存映射文件的内容被Windows刷新到磁盘的频率,以及Windows使用什么标准来决定是时候这样做了。Windows内存映射文件
我已经在网上做了一些研究,除了MSDN更多地处理'如何处理'而不是详细说明内部工作方式之外,似乎没有太多的信息。如果任何人可以指向我的任何文章或已经看过,并有一些见解,我会欢迎它。
谢谢。
我正在调查Windows内核相对于内存映射文件/虚拟内存的行为。具体而言,我有兴趣确定内存映射文件的内容被Windows刷新到磁盘的频率,以及Windows使用什么标准来决定是时候这样做了。Windows内存映射文件
我已经在网上做了一些研究,除了MSDN更多地处理'如何处理'而不是详细说明内部工作方式之外,似乎没有太多的信息。如果任何人可以指向我的任何文章或已经看过,并有一些见解,我会欢迎它。
谢谢。
内存映射文件由内核中修改过的页面编写器控制 - 只要支持页面的内存需要刷新被重新使用(所以它可能发生在内存压力下)。
系统还会跟踪脏页的数量并在达到阈值后将其写入。
您可以在this文章中找到关于Windows Vista的Windows内存管理变更的更多信息 - 它并不直接回答您关于内存管理器如何处理修改页面的问题,但您可以根据信息推断出一些细节在文章中。
内部运作是一个实施细节,可能会改变。他们没有记录在任何地方,因为微软不希望你依赖细节。我不得不问:你为什么在意?如果你有很强的实时需求,Windows可能不是你的操作系统...
我建议阅读由Mark Russinovich和David Solomon在第五版中的Microsoft Windows Internals以及Alex Ionescu。
我建议你获得
的Microsoft®Windows®内幕 第四版的副本:微软Windows Server 2003的Windows XP和Windows 2000
有PDF文件漂浮在网络云。
这是由“sysinternals”人群完成的书,这些人已经写了一些非常好的Windows实用工具多年。
http://www.microsoft.com/technet/sysinternals
你将不得不在
内存管理阅读的章节
存储管理
缓存管理器
文件系统
他们不d直接解决你的问题,但如果你设法阅读,消化和掌握非常技术性的段落,你可以自己解决。但是,如果你能预测Windows为什么会这样做“你是比大多数人更好的人”。
快乐的大脑冻结阅读很多。