Windows内存映射文件

时间:2009-06-09 13:54:44

标签: windows memory kernel virtual

我正在尝试研究Windows内核关于内存映射文件/虚拟内存的行为。具体来说,我感兴趣的是确定将内存映射文件的内容(通过Windows)刷新到磁盘的频率,以及Windows使用什么标准来决定它是时候这样做了。

我已经在网上做了一些研究,除了MSDN更多地处理'hows and whys'而不是详细说明内部工作之外,似乎没有太多信息。如果有人能指出我的任何文章,或者之前已经研究过并有一些见解我会欢迎它。

感谢。

4 个答案:

答案 0 :(得分:5)

我建议由Mark Russinovich和David Solomon在第五版中与Alex Ionescu一起阅读Microsoft Windows Internals。

答案 1 :(得分:4)

内存映射文件由内核中已修改的页面编写器控制 - 只要需要重新使用支持页面的内存(因此可能在内存压力下发生),它们就会被刷新。

系统还会跟踪脏页的数量,并在达到阈值后写入它们。

您可以在this文章中找到有关Windows Vista内存管理更改的更多信息 - 它不能直接回答有关内存管理器如何处理修改过的页面的问题,但您可以根据某些细节推断出一些细节关于文章中的信息。

答案 2 :(得分:2)

我建议您获取

的副本

Microsoft®Windows®Internals 第四版:Microsoft Windows Server 2003 Windows XP和Windows 2000

网络云中存在着pdf。

这是多年来编写了一些非常好的Windows工具的“sysinternals”人群所做的书。

http://www.microsoft.com/technet/sysinternals

您必须阅读

上的章节

内存管理

存储管理

缓存管理器

文件系统

他们没有直接解决您的问题,但如果您设法阅读,消化和掌握非常技术性的段落,您可以自己解决。但是,如果你可以预测Windows为什么会做它“你比大多数人更好”。

快乐的大脑冻结阅读很多。

答案 3 :(得分:1)

内部工作是一个实施细节,可能会有变化。他们没有在任何地方记录,因为微软不希望你依赖细节。

我要问:你为什么关心?如果您有严格的实时要求,Windows可能不适合您...