Windows内存映射文件

7
我正在研究Windows内核在内存映射文件/虚拟内存方面的行为。具体来说,我想确定Windows多久将内存映射文件的内容刷新到磁盘上,并且Windows用什么标准来决定何时进行刷新。
我已经在网上做了一些研究,除了MSDN更多地涉及“如何和为什么”,而不是详细介绍内部工作原理外,似乎没有太多信息。如果有人能指向任何文章或曾经研究过这个问题并有一些见解,我将不胜感激。
谢谢。
4个回答

5

我建议阅读Mark Russinovich和David Solomon的Microsoft Windows Internals,第五版还有Alex Ionescu的贡献。


4

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

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

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


2

内部工作原理是实现细节,可能会发生变化。它们没有在任何地方记录,因为微软不希望你依赖这些细节。

我必须问一下:你为什么关心这个?如果你有硬实时要求,Windows可能不适合你...


2
我建议您获取以下书籍的副本:
《Microsoft® Windows® Internals Fourth Edition: Microsoft Windows Server 2003 Windows XP and Windows 2000》
网络上有一些PDF版本可供下载。
这本书是由“sysinternals”团队编写的,他们多年来编写了一些非常好用的Windows工具。

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

你需要阅读以下章节:
内存管理
存储管理
缓存管理器
文件系统
虽然它们没有直接解决你的问题,但如果你能够阅读、理解和掌握这些非常技术性的段落,你就可以自己解决问题。但是如果你能预测Windows为什么会做某些事情,“那你比大多数人都强”。祝你阅读愉快。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接