Memory sizes of Microsoft Windows Operating Systems


BCDEdit /set increaseuserva



Download 0.82 Mb.
Page2/9
Date08.01.2017
Size0.82 Mb.
#7641
1   2   3   4   5   6   7   8   9

BCDEdit /set increaseuserva Megabytes (replaces /3GB and /USERVA)

BCDEdit /set pae [ Default | ForceEnable | ForceDisable ] (replaces /PAE)

Note that the addressspace is limited to 4GB by design even if /PAE is enabled, only use for PAE switch is AWE bankswitching
**** Not sure whether /PAE isn’t supported. But because addressspace is limited to 4GB there is no use of /PAE anyway, except for use of AWE bankswitching from an application.

Boot.ini options:
/3GB enable that applications can use a virtual address space of 3GB. The system only uses the upper 1GB range for system calls instead of 2GB.

/3GB on “Windows 2000 Professional” and “Windows 2000 Server” has the effect of reducing kernel size to 1 GB while the application address-space stays 2 GB.

Application must have IMAGE_FILE_LARGE_ADDRESS_AWARE in its header to get an 3GB address-space. This is for backward compatibility with old programs which compare pointers (pointers are signed)

Some DLL’s load at 2GB boundary (0x7FFFFFFF and below). This makes it impossible to have an continues address-space above 2GB. A VirtualAlloc above 2GB will fail therefore.


It looks like anno 2011 Microsoft calls 3GB, 4GT instead (4-gigabyte tuning)

/PAE Enable enhanced adressing mode (36bit physical addressing mode, max 64GB theoretically)

Minimum processor for PAE: Intel Pentium Pro (AMD x64)
/USERVA: reduce the user-address-space from 3GB downto 2GB to leave more memory for the kernel

Why less than 4GB is seen by 32-bit Windows XP (and other 32-bit OS which support max 4GB and no PAE)
An Intel-architecture processor (AMD included) maps I/O ports onto memory addresses. In the design of the PC the PCI/AGP I/O is started from address 0xFFFFFFFF and lower addresses. The 0xFFFFFFFF is the max address of 32bit (4GB). The size of this I/O address range is depends on the detailed design of the motherbord, BIOS and of the present PCI/AGP cards.
Memory at these I/O address range cannot be addressed. Modern motherboards have a remapping option so the memory located at the I/O addresses is moved to addresses above the 0xFFFFFFFF (4GB) address. Unfortunately 4GB-32bit-Windows versions (like XP) is not able to address memory located above the 4GB boundary, now for another reason as the kernel uses 32bit words for addressing.. With PAE (uses 36bit adresses) addressing is possible but PEA is not supported by the 4GB-versions of Windows.

Take for example a ASUS M2N motherboard with 8GB memory with a Geforce 8500 PCI-e card and 3 SATA x4 controllers.

The remapping option can be found at BIOS->Advanced->Chipset->Memory controller->Memory configuration->Memory hole remapping.

The I/O on this motherbord is located from 0x9FF49000 to 0xFFFFFFFF. Only the first 2683604992 bytes of memory can addressed below the 4GB boundary. The remapping option remaps the memory between 0x9FF49000-0xFFFFFFFF to the addresses 0x100000000-0x1600B7000. We see the following:







Disabled remapping

Enable remapping

Memory reported by BIOS

6656MB

8192MB

Memory reported by Windows XP

2559MB (2683604992 byte)

2559MB (2683604992 byte)

Memory reported by 64bit (or 32bit-with-PAE)

6654MB (6977695744 byte)

8190MB (8588308480 byte)




  • Without remapping 1536MB of memory is not seen by the BIOS as it is located at I/O addresses

  • Remapping makes no difference for 4GB-32bit Windows as the remapped memory is out of reach. Always 1536MB is unused.

  • On 64bit Windows or 32bit Windows with PAE the remaping results in 8GB of available memory (ca. 2MB less because of resevered kernel and BIOS memory).


Methods of using large memory from within an 32 application:
1 – Specify /3GB in boot.ini and link application with IMAGE_FILE_LARGE_ADDRESS_AWARE. Use Windows versions which support PAE (Windows 2003 or equivalent). Then the virtual address spaces is increased from 2GB to theoretically 3GB. Practical you end up with two separate address ranges. Below address 0x8000000 you have about 1.5 GB and above it about 1 GB. In total 2.5 GB. Spanning your tasks over multiple processes and using interprocess communication you can use as much memory as possible. Note that the overhead for LDT’s with 4KB page size wastes a lot of memory (hundreds of MB).
2 – Use of AWE is very slow because it takes a lot of time to reload the LDT tables while switching the bank. (page size is only 4GB).
Misc background information:

  • Europe Vista versions do not have media player and media API’s (and that last one makes them unusable of course)

  • A 64bit application’ virtual addressspace is 8TB (althrough 64bit could address 16777216 TB = 16 EB). Microsoft only reserves a “small” part of the total possible addressspace for applications, because it is so “unbelievable” large… well, the future will tell…

  • There is no 32bit version of Windows Compute Cluster Server 2003

  • There are no 64bit versions of Windows 2003 Small Business Server, Windows 2003 Server Web Edition, Windows 2003 Storage Server, Windows 2003 Storage Server Enterprise Edition



Availability of AWE API (bankswitching from within an application in combination with PAE, AWE is useless without PAE)

Windows Version

AWE API

PAE support



















Windows NT4 Workstation

N

N

Windows NT4 Server

N

N

Windows NT4 Enterprise

N

N










Windows 2000 Professional

Y

N

Windows 2000 Server

Y

N

Windows 2000 Advanced Server

Y

Y

Windows 2000 DataCenter

Y

Y










Windows XP Home Edition

Y

N

Windows XP Professional

Y

N










Windows 2003 Server Standard

Y

N

Windows 2003 Server Enterprise

Y

Y

Windows 2003 Server DataCenter

Y

Y











Version numbers (via GetVersionEx with OSVERSIONINFOEX)


Windows. 3.1 with WIN32s

3.01

VER_PLATFORM_WIN32s




Windows. 3.11 with WIN32s

3.11

VER_PLATFORM_WIN32s
















Windows 95

4.00

VER_PLATFORM_WIN32_WINDOWS




Windows 98

4.10

VER_PLATFORM_WIN32_WINDOWS




Windows Me

5,00

VER_PLATFORM_WIN32_WINDOWS
















Windows NT 3.1

3.01

VER_PLATFORM_WIN32_NT




Windows NT 3.51

3.51

VER_PLATFORM_WIN32_NT




Windows NT 4.0

4.00

VER_PLATFORM_WIN32_NT




Windows 2000

5.00

VER_PLATFORM_WIN32_NT




Windows XP

5.01

VER_PLATFORM_WIN32_NT




Windows Server 2003

5.02

VER_PLATFORM_WIN32_NT

GetSystemMetrics(SM_SERVERR2) == 0

Windows Server 2003 R2

5.02

VER_PLATFORM_WIN32_NT

GetSystemMetrics(SM_SERVERR2) != 0

Windows Vista

6.00

VER_PLATFORM_WIN32_NT

OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION

Windows Server 2008

6.00

VER_PLATFORM_WIN32_NT

OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION




  • GetNativeSystemInfo indicates x86/x64: PROCESSOR_ARCHITECTURE_INTEL, PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_IA64, PROCESSOR_ARCHITECTURE_MIPS, PROCESSOR_ARCHITECTURE_ALPHA, PROCESSOR_ARCHITECTURE_PPC, PROCESSOR_ARCHITECTURE_UNKNOWN



  • GetProductInfo indicates: PRODUCT_BUSINESS, PRODUCT_BUSINESS_N, PRODUCT_CLUSTER_SERVER, PRODUCT_DATACENTER_SERVER, PRODUCT_DATACENTER_SERVER_CORE, PRODUCT_DATACENTER_SERVER_CORE_V, PRODUCT_DATACENTER_SERVER_V, PRODUCT_ENTERPRISE, PRODUCT_ENTERPRISE_N, PRODUCT_ENTERPRISE_SERVER, PRODUCT_ENTERPRISE_SERVER_CORE, PRODUCT_ENTERPRISE_SERVER_CORE_V, PRODUCT_ENTERPRISE_SERVER_IA64, PRODUCT_ENTERPRISE_SERVER_V, PRODUCT_HOME_BASIC, PRODUCT_HOME_BASIC_N, PRODUCT_HOME_PREMIUM, PRODUCT_HOME_PREMIUM_N, PRODUCT_HOME_SERVER, PRODUCT_HYPERV, PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT, PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING, PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY, PRODUCT_SERVER_FOR_SMALLBUSINESS, PRODUCT_SERVER_FOR_SMALLBUSINESS_V, PRODUCT_SMALLBUSINESS_SERVER, PRODUCT_STANDARD_SERVER, PRODUCT_STANDARD_SERVER_CORE, PRODUCT_STANDARD_SERVER_CORE_V, PRODUCT_STANDARD_SERVER_V, PRODUCT_STARTER, PRODUCT_STORAGE_ENTERPRISE_SERVER, PRODUCT_STORAGE_EXPRESS_SERVER, PRODUCT_STORAGE_STANDARD_SERVER, PRODUCT_STORAGE_WORKGROUP_SERVER, PRODUCT_UNDEFINED, PRODUCT_ULTIMATE, PRODUCT_ULTIMATE_N, PRODUCT_WEB_SERVER, PRODUCT_WEB_SERVER_CORE, PRODUCT_UNLICENSED



  • GetSystemMetrics indicates SM_MEDIACENTER, SM_STARTER, SM_TABLETPC, SM_SERVERR2



  • OSVERSIONINFOEX.wProductType indicates VER_NT_WORKSTATION,VER_NT_SERVER,VER_NT_DOMAIN_CONTROLLER



  • OSVERSIONINFOEX.wSuiteMask indicates bitmask: VER_SUITE_BACKOFFICE, VER_SUITE_BLADE, VER_SUITE_COMPUTE_SERVER, VER_SUITE_DATACENTER, VER_SUITE_ENTERPRISE, VER_SUITE_EMBEDDEDNT, VER_SUITE_PERSONAL, VER_SUITE_SINGLEUSERTS, VER_SUITE_SMALLBUSINESS, VER_SUITE_SMALLBUSINESS_RESTRICTED, VER_SUITE_STORAGE_SERVER, VER_SUITE_TERMINAL, VER_SUITE_WH_SERVER


Determine usable Vista version (64bit)


Version

Max Memory

Remote desktop

Home Basic / Premium

8GB/16GB

No

Business

128GB

Yes

Enterprise

128GB

Yes

Ultimate

128GB

Yes

Remote desktop is a must in order to reach you computer when not at home. There is no advantage of Enterprice/Ultimate on top of Business, except perhaps for Virtual PC support, MediaCenter and MUA support (on-the-flight change of display language, which does not realy change everything anyway). The N-versions are ofcourse in any way unusable.


So the best choice is Vista Business.

References

KB283037: /3GB option

KB810371: /USERVA option, exchange server

KB171793: /3GB option

KB316739: /USERVA option

KB294418: Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003


Inside SQL Server 2000's Memory Management Facilities

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp



The following references are included in this document:
PAE, WHDC: Memory Support and Windows Operating Systemss

http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx


KB294418: Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003

http://support.microsoft.com/kb/294418


3GB boot.ini option

http://msdn.microsoft.com/en-us/library/ms791558.aspx


BCDEdit Vista boot parameters tool

http://msdn.microsoft.com/en-us/library/aa906211.aspx


Memory Limits for Windows Releases

http://msdn.microsoft.com/en-us/library/aa366778.aspx


Windows Vista Starter Fact Sheet

http://www.microsoft.com/presspass/newsroom/windows/factsheets/WinVistaStarterFS.mspx

Vista versions

http://windowsitpro.com/article/articleid/47669/pre-pdc-exclusive-windows-vista-processor-and-memory-support-revealed.html


Download 0.82 Mb.

Share with your friends:
1   2   3   4   5   6   7   8   9




The database is protected by copyright ©ininet.org 2024
send message

    Main page