Windows_Server_2003体系结构
虚拟内存管理器(Virtual Memory Manager,VMM)用于管理系统内存。它管理并组合系统中所有的物理内存,使应用程序和操作系统可以获得更多的可用内存。这比实际安装在系统中RAM芯片上的内存要大得多。
通过防止一个进程侵入另一个进程的地址空间,VMM能保护系统的内存资源。这在DOS或 Windows早期版本等操作系统中是一个令人头痛的问题。
无论是物理内存还是虚拟内存,每个内存字节都用一个唯一的地址表示。物理RAM具有局限性,因为Windows 2003只能根据系统中物理RAM的数量来编址。但是虚拟编址就不一样了,Windows 2003 Web版本最多可以支持2GB RAM,Windows Server 2003 Standard版最多可以支持4GB RAM,而Enterprise版可支持64GB,在64位处理器上Datacenter版可以支持512GB RAM。
VMM管理内存,它具有下面两个主要功能。
VMM拥有一个内存映射表,它可以记住分配给每个进程的虚拟地址列表。可以确定要将实际数据映射到的地址位置。换句话说,它担当翻译服务的角色,负责将虚拟内存映射到物理内存。这项功能对于应用程序是透明的,应用程序就像访问物理内存一样运行。
在RAM用完时,VMM会根据需要将内存内容移到硬盘中去。这就是通常所说的分页。
因此,Windows 2003可以访问4GB地址空间,这些空间是虚拟的,可能由RAM和硬盘空间组成。虽然我们讨论的是4GB地址空间,但是这些空间与系统如何使用内存有关。实际上,应用程序可用的地址空间只有2GB或者更少,因为有2GB由所有在用户模式运行的进程共享,而剩下的2GB分配给内核模式线程。可以使用/3GB或者/PAE(即Physical Address Extension)来更改默认的地址空间,以获得大于4GB的地址空间。
现在讨论4GB空间的“高端”和“低端”部分,各自包含2GB寻址空间。高端部分只为内核模式进程保留;低端空间既可用于用户模式,也可用于内核模式进程。高端部分也在其地址空间中保留一部分低端区域,用于直接映射硬件地址。
低端部分也是在分页池中维护的。有非分页池和分页池两种,分页池的内容可以被换出,转存到磁盘,通常分配给应用程序;而非分页池必须保留在物理RAM中,每个分页的大小为4KB。
1.6 深入分页
分页就是将数据移出和移入物理内存的过程。如果物理内存池满了,而Windows还需要更多内存,VMM就把物理内存中暂时不用的数据转出到磁盘中,这个磁盘储存库称为分页文件(page file)。
每个进程所分配的地址空间都以页的方式存在,它们可以被标识为有效页或无效页。有效页是指物理内存中的页,对于任何应用程序都是有效的;而无效页是指存储在磁盘上的页,对于任何应用程序都是无效的。
在应用程序需要访问已经移动到磁盘上的无效页(脱机内存中的数据)时,系统将认为这是页错误(page fault)。页错误进程类似于一个执行线程,它在遇到错误或异常事件后会根据例程而采用不同的路径。在这种情况下,页错误可以被妥善地处理,VMM“俘获”这个错误,然后访问相关分页文件中的数据,并在RAM中恢复这些数据。同时其他暂时不用的数据被换出到磁盘上。这就是为什么在数据和内存访问比较频繁的应用程序中推荐使用快速而可靠的硬盘的原因之一。
VMM执行下面一系列内务处理工作,它们是分页例程的一部分。
VMM以先入先出的原则管理磁盘分页文件中的数据。换句话说,RAM有空闲空间时,磁盘上存在时间最长的数据最先在物理内存中恢复。如果RAM一直进行释放,VMM会继续
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Windows_Server_2003体系结构(6)在线全文阅读。
相关推荐: