Windows内存映射文件

我试图调查Windows内核相对于内存映射文件/虚拟内存的行为。 具体而言,我有兴趣确定内存映射文件的内容被Windows刷新到磁盘的频率,以及Windows使用什么标准来决定是时候这样做了。

我在网上做了一些研究,除了MSDN更多地处理“怎么样”而不是详细说明内部工作之外,似乎没有太多的信息。 如果任何人可以指向我的任何文章或已经看过这个以前有一些洞察力,我会欢迎它。

谢谢。

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

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

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

我建议阅读由Mark Russinovich和David Solomon在第五版中的Microsoft Windows Internals以及Alex Ionescu。

我建议你获得一份副本

Microsoft®Windows®内部版本第四版:Microsoft Windows server 2003 Windows XP和Windows 2000

网络云中有一些pdf文件。

这是“sysinternals”人群所写的书,这些年来已经写了一些很好的windows实用程序。

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

你将不得不阅读章节

内存管理

存储管理

缓存管理器

文件系统

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

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

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

我必须问:你为什么在意? 如果您有严格的实时要求,Windows可能不是您的操作系统…