32位操作系统使用4GB以上内存

本文介绍了如何通过修改启动选项来调整32位Windows系统中内核模式与用户模式的内存分配,利用“/3GB”参数使应用程序能访问更多内存。同时探讨了PAE与AWE机制在扩展内存寻址能力方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、“/3GB”方式

1、内存分配

  从80386开始,出于安全性的考虑(防止用户访问并篡改操作系统的关键部分),以及考虑到系统的稳定性,该系列的CPU可以运行于ring0至ring3从高到低4个权限级别,对数据也提供相应的4个保护级别。规则如下:

(1)运行于较低级别的代码不能随意调用高级别的代码和访问高级别的数据。

(2)只有ring0层的代码可以直接对物理硬件进行访问。

  为了兼容其他平台,Windows只用了2个运行级别:ring0、ring3 。分别对应以下2种处理器存储模式:

(1)内核模式,对应ring0层。这是操作系统的核心部分,设备驱动程序就是运行在该模式下。在此模式下,程序可以访问所有的内存和硬件,并使用所有的处理器指令。

(2)用户模式,对应ring3层。这是给用户的应用程序用的,包括操作系统的用户接口部分(即win32 API)以及所有的应用程序都运行在该级别。在此模式下的应用程序不能访问其他进程的资源,除非通过API调用。

  在Windows操作系统中,任何一个进程都被赋予了其自己的虚拟地址空间(VAS:Virtual Address Space),这就是应用程序能够申请访问的最大地址空间。

  在32位操作系统中,最大寻址空间为2^32=4GB。在默认情况下,操作系统将4GB的VAS的高位分配给了内核模式,只有低位的2GB是用户地址空间。

 

2、修改启动选项

  默认情况下,操作系统和应用程序各占2GB内存。 对于Windows Server 2003,考虑在boot.ini文件中使用“/3GB”方式减少内核模式占用的地址空间,从而使应用程序获得更多的VAS。

例如:

[boot loader]

timeout=30

default-multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating system]

default-multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows Server 2003" /fastdetect /3GB

 

3、更多选项

  如果不将全部3GB都用于应用程序,那么可以在“/3GB”参数后面再加上“/USERVA”参数,精确指定内存地址空间分配给应用程序的大小。例如:“/USERVA=2500”表明配置2500MB内存的地址空间预留给应用程序,操作系统只保留的核心内存空间为:3072-2500=572MB。 

  建议将USERVA的值设定在2800至3030之间。

 

二、PAE与AWE

1、扩展内存空间

  Intel Pentium PRO之后的处理器把管脚数从32增加到36,从而处理器现在寻址能力达2^36=64GB。可是内存的地址表还只是支持4GB寻址,为此Intel推出一种内存映射模式,称为物理地址扩展(PAE)。这样,系统就可以映射更多的内存空间,寻址宽度可达标准的2倍。

  Windows的址址窗口扩展(AWE)机制可以允许32位的应用程序访问超过4GB的物理内存。虚拟内存窗口被用来缓存AWE读写访问物理内存的请求。 

225620477.gif

 

2、修改启动参数

  在boot.ini文件通过添加“/PAE”参数

 

3、对“/3GB”方式的影响

(1)“/3GB”参数必须放在“/PAE”之后。

(2)通过“/3GB”参数压缩了核心内存的空间,同进也压缩了其中Windows用于管理物理内存的表,因此,“/3GB”方式下最大只能管理16GB的物理内存。如果可用的物理内存超过16GB,要确保boot.ini文件中没有“/3GB”参数。 

 

4、注意事项

  在Windows Server 2003或Windows Server 2008中启用AWE时,都必须锁定内存中的页,以防将它们写入分页文件。

  修改组策略,依次展开 “计算机配置-Windows设置-安全设置-本地策略-用户权限分派”。例如,要防止SQL Server把内存写入分页文件,就在“将页锁定在内存”策略中添加SQL Server启动帐户。

182312960.png

 

182312458.png

   上述用户的进程将数据保持在物理内存中,这样就防止系统将数据分布到磁盘上的虚拟内存中。

  在Windows Server 2008 R2中,此项组策略为“锁定内存页”。

首先看下各种微软操作系统内存支持状况。暂时未写windows7 及windows 2008。 Windows 2000 Advanced Server 8 GB 内存 RAM Windows 2000 Datacenter Server 32 GB 内存 RAM Windows XP (所有版本) 4 GB 内存 RAM* Windows Server 2003 (and SP1) Standard Edition 4 GB 内存 RAM* Windows Server 2003 Enterprise Edition 32 GB 内存 RAM Windows Server 2003 Datacenter Edition 64 GB 内存 RAM Windows Server 2003 SP1 Enterprise Edition 64 GB 内存 RAM Windows Server 2003 SP1 Datacenter Edition 128 GB 内存 RAM 1,首先检查主板是否支持,下载everest检测软件,在主板-内存一项中,Physical Address Extension(PAE)查看“操作系统支持”“处理器支持”是否为“是”,如果是“是”的话,那么接下来 2,我的电脑-属性-高级-启动和故障恢复-设置-编辑,这里编辑操作的是c盘根目录下隐藏的boot.ini文件,也可以通过在c盘显示隐藏文件的方法找到它,一般boot.ini里的内容如下: [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 那么接下来在“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" 后面加上“/PAE” 即“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /PAE /noexecute=optin /fastdetect” 这样保存关闭,系统就打开了PAE,重新启动后,电脑属性的下方多了“物理地址扩展”几个字,虽然显示的还是3.25g内存,但实际上4g内存已经完全启用了。 在默认情况下 (不使用PAE), Windows XP (32bit)是可以识别4GB内存的. PAE参数是为了多于4GB内存的情况. 但是根据我的经验, 有很多情况下, Windows XP不能够正确的识别出4GB内存. 一般这都是因为计算机硬件占用内存. 32-bit的 Windows XP 默认不能使用4GB内存: 32的Windows XP最大支持4GB物理内存. 但是Windows XP不能使用全部的4GB内存, 因为有一部分内存是保留给系统硬件, 驱动等. 所以有时候您安装4GB内存, 但是系统报告2.5GB到3.5GB. 这个情况是比较常见的. 加了/PAE后Windows XP是否可以识别使用4GB内存: /PAE主要用于大于4gb物理内存的情况下, 所以4GB内存不需要/PAE. 另外, 32的Windows XP添加了/PAE也依然有4GB物理内存限制 ---, 即32的Windows XP依然只能使用最大4GB物理内存. 这一点和32的Windows 2003 不一样. 物理内存限制和系统也是有关系的. 附件下载XP 2003 诺德尔内存开启4GB以上大内存的支持功能,提供优快云懒人及热友下载。原理也是打开PAE。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值