The OS and processor type has nothing to do with it. Motherboard designs
usually have a limit on how much RAM can be cached. If RAM is added above
this limit, access to that RAM is slower (on average) than access to cached
RAM. This can mean that adding more RAM doesn't improve performance much, if
at all. The point where this happens depends on the motherboard
configuration and the amount of cache that is installed.
In some cases, adding a lot of RAM to W95 caused the memory manager to get
confused and created some performance problems. This can usually be fixed
with some simple tweaks.
The 4Gb limit is the Intel processor memory model, not DOS. Win9x was
designed to use up to 2Gb of RAM.

Signature
Jeff Richards
MS MVP W95/W98
Would you mind site sourcing your last statement> The Minasi and New Riders
books I use in my teaching are very specific about this matter. DOS memory
model is up to 4Gig physical and 8Gig addressing with virtual memory
considered. Unix and NT class operating systems do better. Intel
processors vary between 1Meg and 65Gig in memory addressing, depending on
generation. I wound't mind updating my presentations with additional
sources.
Personal testing with winstone, posts on this website, and inferences in the
above books indicate that deficiencies in GDI32.exe and kernel32.dll in
certain versions of the 9x model indicate slowdowns in processing after
adding memory beyond critical points. I've never personally known 95 and ME
to have this problem, but 98 does in my experience. I know that Microsoft
and many other sources consider this a myth, and I admit that I haven't
tested a statistically significant (more than 10) set of different
platforms.
> The 4Gb limit is the Intel processor memory model, not DOS. Win9x was
> designed to use up to 2Gb of RAM.
[quoted text clipped - 5 lines]
> can
> > measure the slowdown as you increase phyical memory.
Jeff Richards - 06 Mar 2004 05:36 GMT
Windows 9x was designed to use up to 2Gb of RAM:
http://support.microsoft.com/default.aspx?scid=kb;[LN];181594
Windows 95 Can Access Up to Two GB of RAM
Windows Me and Windows 98 are not designed to handle more than 1 GB of RAM.
http://support.microsoft.com/default.aspx?scid=kb;[LN];304943
Computer May Reboot Continuously with More Than 1.5 GB of RAM
The 4Gb limit is the Intel processor memory model, not DOS. DOS was invented
when the x86 could address 1Mb of RAM, so if you want to talk about a DOS
memory model you would be referring to the 640k/1Mb arrangement. Add-ons
such as extended or expanded memory drivers pushed this limit up, but the
4Gb address limit is imposed by the x86 architecture of the Intel
processors. It is not physically possible to address more RAM than this in
the x86 instruction set. It makes no sense to talk about a DOS memory model
with virtual memory - DOS doesn't know anything about it. Perhaps the
references you have are using a different meaning for DOS (IBM?). NT
operates within the Intel x86 architecture of 4Gb address space but it makes
better use of memory than w9x. Intel makes many other types of
microprocessor, but they are not relevant to Windows.
Windows 95 can get into problems with a lot of RAM due to design
deficiencies in the memory management routines. So the problem with
performance is due to the operating system, not the processor type. It
doesn't happen at a specific amount of RAM, but it is dependant on what
programs are running and how the machine has been used. W98 can have similar
problem in some circumstances with caching. There are specific issues at
about 512Mb and 1Gb, but nothing that is specific to 256Mb and the problems
are not associated with latency in allocating or using any particular
address.

Signature
Jeff Richards
MS MVP W95/W98
> Would you mind site sourcing your last statement> The Minasi and New Riders
> books I use in my teaching are very specific about this matter. DOS memory
[quoted text clipped - 23 lines]
> > can
> > > measure the slowdown as you increase phyical memory.
Alan Illeman - 06 Mar 2004 13:59 GMT
> Would you mind site sourcing your last statement> The Minasi and New Riders
> books I use in my teaching are very specific about this matter. DOS memory
> model is up to 4Gig physical and 8Gig addressing with virtual memory
> considered.
Dos is based on the 16-bit real mode architecture of the Intel
CPU's. 2^16 = 1 Mb (in actual fact you can address a little more
before wrap around occurs, the so-called HI MEMORY). It's
possible (I've done it - 80386 or higher CPU's) using HIMEM.SYS
and suitable code to switch the CPU to 32-bit protected mode (2^32
= 4Gb) so that you can access all of that space, you paid for :-).
In 'protected mode' all memory addressing is now 32-bit, including
that first 1 Mb of ram. There are several other architectural changes
too. Segmented addressing is replaced by 'descriptors', paging is
available, etc., etc.
Virtual memory: when program demands exceed the available RAM,
maintenance programs save the content of part of that RAM to disk,
so the main program can reallocate that RAM memory. Theoretically,
there is no limit to 'available' virtual memory, but every time the program
'swaps RAM to/from disk' the whole process is slowed, since read/writes
to disk are much slower than read/writes to RAM.
If you write Windows programs in ASM or C or C++, there is a wealth
of functions for allocating memory, including virtual memory, e.g.
VirtualAlloc
The VirtualAlloc function reserves or commits a region of pages in the
virtual address space of the calling process. Memory allocated by this
function is automatically initialized to zero, unless the MEM_RESET
flag is set.
LPVOID VirtualAlloc(
LPVOID lpAddress, // address of region to reserve or commit
DWORD dwSize, // size of region
DWORD AllocationType, // type of allocation
DWORD Protect // type of access protection
);
Alan
email: replace illemann with alananne