我正在尝试研究Windows内核关于内存映射文件/虚拟内存的行为。具体来说,我感兴趣的是确定将内存映射文件的内容(通过Windows)刷新到磁盘的频率,以及Windows使用什么标准来决定它是时候这样做了。
我已经在网上做了一些研究,除了MSDN更多地处理'hows and whys'而不是详细说明内部工作之外,似乎没有太多信息。如果有人能指出我的任何文章,或者之前已经研究过并有一些见解我会欢迎它。
感谢。
答案 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可能不适合您...