Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Computing > Windows 64bit > Win 2003 Srv Standard x 64 /sql2005 x64 and > 2GB RAM

Thread Tools

Win 2003 Srv Standard x 64 /sql2005 x64 and > 2GB RAM

Charlie Russel - MVP
Posts: n/a


Steve Foster [SBS MVP] wrote:
> Charlie Russel - MVP wrote:
>> Actually, they only get to see 8 TB - the other 8 TB is reserved for the
>> OS. But I don't think we need to worry yet.

> Hmmm, wonder if MS will still be recommending a PageFile of 1.5 x RAM by
> then... <g>

Reply With Quote
Charlie Russel - MVP
Posts: n/a

Good explanation.

One additional comment - the cost of access to "memory" that is directly
addressable (ie, has an address in that 2 GB or 8 TB of address space) is an
order of magnitude less than one that has to be retreived from some database
and then assigned an address. Even though both could, potentially, require
going to the disk to get it. See the deployment scenarios whitepaper I did
for the launch of x64 Server for some examples where this made a dramatic


Rob Perkins wrote:
> Charlie Russel - MVP wrote:
>> Keep in mind here we're talking apples and oranges. Virtual Memory
>> Address space is the amount of virtual memory that can be directly
>> addressed. It is 8 terrabytes in x64 - way more than your 8, 12 or even
>> 16 gigabytes. RAM is the physical RAM on your machine. It is limited by
>> the version of Windows you run more than by the address space. The
>> operating system needs a certain amount of address space, and RAM, to
>> work, obviously. But it needs a much larger address space than it needs
>> RAM. So not to worry.

> Oh yeah; I had to explain this once to a Unix guy. Refine me where I get
> this wrong, OK?
> Your computer has 8 GB RAM. The BIOS "sees" 8 GB.
> The operating system sees 8 GB RAM PLUS the size of your virtual memory
> swapfile. Probably 4 GB disk space, for a total "commit charge" capacity
> of 12 GB RAM. So, the OS "sees" 12 GB. Sort of. It knows that there are
> 12 GB of "memory page" space out there to assign to itself or to running
> programs.
> Your *programs*, no matter the address word size (32 bit or 64 bit) care
> nothing for that. In Win32 they "see" (sort of) a subset of 2 GB,
> roughly 1/6 of all the memory resources on your computer. In Win64, they
> "see" (again, sort of) a subset of 8 TB, roughly *4000 times* the
> memory resources actually available to them.
> The Windows operating system contains a "Virtual Memory Manager", and
> makes use of a "Memory Management Unit" in your hardware which
> translates between what the BIOS sees, and what the OS sees, and what
> your program actually gets to use.
> (By now, a good picture or two is commonly in order. The Wikipedia entry
> for "Virtual Memory" is decent enough for that.)
> Usually, programs get access to this memory by invoking magic, um, I
> mean "malloc", or something like it, which asks the operating system to
> set all this up. When the OS returns with information about a block of
> memory, it gives the program a number corresponding to the starting
> location of that memory, or it returns a failure code; an explanation
> why the program can't have that memory it just asked for.
> (Don't let's get started discussing thread-local memory, or locked
> memory, or memory-mapped files, or the differences between code and data
> segments of memory. Pay no attention to the MMU behind the curtain!)
> This is a long winded way of saying that in 32-bit Windows, each of your
> programs "sees" 4 GB of memory, 2 GB of which contains neat things
> like the locations of all the Windows API calls, all the device driver
> entrypoints, other stuff. The other 2 GB contains the program and the
> data for the program.
> Back in the early 90's, when Windows NT was beginning to be something,
> was when this scheme was hatched up. Recall at the time that servers
> usually had 64 MB of RAM in them, and a 200 MB hard disk, meaning that
> each program running under NT had a 2 GB space, to be sure, but only 4%
> of that potential was backed up by hardware resrouces.
> Which meant that it was going to be impossible for years and years to
> reach the limits of an NT-based memory management system.
> Well, we did (and it did take years and years, so they were not wrong!)
> My company's products can get there, any midsize database management
> system as well. So along comes Windows x64...
> ...which uses the same ideas, only instead of a 2 GB space for your
> programs, you get 8 "terabytes", roughly 4000 times the addressable
> space for programs as you got with NT/2000/XP-IA32. However, your
> hardware will only provide programs with less than 0.1% of that potential.
> This is the same class of problem as we all encountered back when we
> started installing 2 MB of memory into 386 PC's; we'd reached DOS's 640
> Kbyte limitation, and started to whine. Today, the transition is
> markedly easier than then; emulators are soooo much better.
> Rob

Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Applet to run on Win 98, Win ME, Win XP, Win Vista & Win 7 ?? Krist Java 6 05-06-2010 11:53 PM
2GB RAM Limit in Win XP? Jack B. Pollack Computer Support 33 05-26-2007 01:19 PM
how to make a 32bit application use more than 2GB RAM on 64bit Windows 2003 Windows 64bit 8 09-05-2006 01:42 PM
Can't format my 2GB SD card to be 2GB Digital Photography 1 08-21-2006 06:23 PM
RAM - 2gb becomes 4gb becomes 2gb b Computer Support 10 04-27-2006 11:58 PM