物理存储器和页交换文件
《Windows核心编程(第5版)》第13章Windows内存体系结构,本章将深入探讨Microsoft Windows所使用的内存体系结构。本节为大家介绍的是物理存储器和页交换文件。
AD:
13.5 物理存储器和页交换文件
在老式的操作系统中,物理存储器被认为是机器中内存的总量。换句话说,如果一台机器装有16 MB内存,那么应用程序最多可以使用16 MB内存。当今的操作系统能让磁盘空间看起来像内存一样。磁盘上的文件一般被称为页交换文件(paging file),其中包含虚拟内存,可供任何进程使用。
当然,为了能够使用虚拟内存,操作系统需要CPU的大力协助。当线程试图访问存储器中的一个字节时,CPU必须知道该字节是在内存中还是在磁盘上。
从应用程序的角度来说,页交换文件以一种透明的方式增大了应用程序可用内存(或存储器)的总量。如果一台机器装备了1 GB的内存,硬盘上还有1 GB的页交换文件,那么应用程序会认为可用内存的总量为2 GB。
当然,这台机器实际上并没有装备2 GB的内存。实际上,是操作系统与CPU分工协作,把内存中的一部分保存到页交换文件中,并在应用程序需要的时候再将页交换文件中的对应部分载入内存。因 此,使用页交换文件可以增大应用程序可用内存的总量。另一方面,页交换文件的使用并不是必须的。如果一台机器没有页交换文件,那么对系统来说,它只是认为 可供应用程序使用的内存总量减少了。但是,我们强烈建议用户使用页交换文件,这样就可以运行更多的应用程序,而应用程序也可以操作更多的数据。最好是把物 理存储器看成是保存在磁盘(通常是硬盘)上的页交换文件中的数据。当应用程序调用VirtualAlloc函数来把物理存储器调拨给地址空间区域时,该空 间实际上是从硬盘上的页交换文件分配得到的。系统中页交换文件的大小是决定应用程序可用内存总量的最重要因素,机器实际装备的内存总量对它的影响相对较小。
当一个线程试图访问所属进程的地址空间中的一块数据(位于第17章介绍的内存映射文件之外)时,有可能会出现两种情况。图13-2显示了经简化后的 流程图。(更多细节请参阅Mark Russinovich和David Solomon所

本文深入探讨了Linux内核中的页交换文件,解释了如何通过页交换文件透明地扩大应用程序可用内存,以及当数据不在内存中时如何处理页面错误。添加内存和优化页交换文件的管理能显著提升系统性能,减少硬盘颠簸。同时,介绍了Windows系统如何使用内存映射文件加快程序加载,并允许使用多个页交换文件以提高性能。
最低0.47元/天 解锁文章
276

被折叠的 条评论
为什么被折叠?



