relic Have you learned how to post yet?



Well, I have asked you twice about you posting in HTML format and have yet to get a sensible answer.
You may recall a poster called pete asking a question here on 31/08/06. As the question was in HTML
format you gave your usual childish response by quoting all the source code, as you have done on
countless other occasions.
Your answer to the OP was ' Come back when you learn how to post.'
Well have you learned how to post yet? I ask because you posted HTML to :

alt.windows-xp

4 Gig Memory in Windows XP

Date: Sat, 12 Aug 2006

Obviously you had no clue about an answer so copied and pasted from a web page.
You are an arrogant loudmouth, never losing an opportunity to denigrate anyone with less PC
knowledge than you.
You even insulted a poster's wife here on 1/09/06 just because she is Russian. You are pathetic.

As you have a selective memory, here is the source code for you.

Path:
border1.nntp.ams.giganews.com!backlog2.nntp.ams.giganews.com!border2.nntp.ams.giganews.com!proxad.net!proxad.net!64.233.160.134.MISMATCH!postnews.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!news-east.rr.com!news-feed-01.rdc-kc.rr.com!news.rr.com!cyclone2.kc.rr.com!news2.kc.rr.com!tornado.socal.rr.com.POSTED!53ab2750!not-for-mail
From: "relic" <spammail.bounce@xxxxxxxxxxxxxxxx>
Newsgroups: alt.windows-xp
References: <TRw_b.416$3a3.8592@attbi_s03> <2_w_b.6095$qc4.2403@xxxxxxxxxxxxxxxxxxxx>
<cmunoz.2cemms@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: 4 Gig Memory in Windows XP
Lines: 447
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_003C_01C6BD71.943D7E90"
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
Message-ID: <cV9Dg.17$Cs3.9@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 12 Aug 2006 01:11:36 GMT
NNTP-Posting-Host: 66.75.246.0
X-Complaints-To: abuse@xxxxxx
X-Trace: tornado.socal.rr.com 1155345096 66.75.246.0 (Fri, 11 Aug 2006 18:11:36 PDT)
NNTP-Posting-Date: Fri, 11 Aug 2006 18:11:36 PDT
Organization: Road Runner High Speed Online http://www.rr.com
Xref: number1.nntp.dca.giganews.com alt.windows-xp:43040

This is a multi-part message in MIME format.

------=_NextPart_000_003C_01C6BD71.943D7E90
Content-Type: text/plain;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

cmunoz wrote:
Hi,
I'm trying to find some information on the effect of the /3GB switch
on the .NET Framework CLR memory limits.
I'm executing some C# that is producing an out-of-memory exception and
it seems that the computer still has enough available memory but it is
not being used.
I'm invoking the C# component from a C++ application, so the latter is
the owner of the process.
=20
Thanks

=20
4GT RAM Tuning

For applications that are I/O-intensive, such as database management =
systems (DBMS), the use of a larger virtual address space can provide =
considerable performance benefits.


Operating systems based on Microsoft(r) Windows NT(r) provide =
applications with a 4 GB virtual address space. The virtual address =
space is divided such that 2 GB is available to the application and the =
other 2 GB is available only to the system. The 4GT RAM Tuning feature =
increases the memory available to the application to 3 GB, and reduces =
the amount available to the system to 1 GB. This benefits applications =
that run on computers with more than 2 GB of physical memory.

To enable this feature, add the /3GB switch to the Boot.ini file. This =
enables applications to use the first 3 GB of the address space on the =
following systems:


a.. Windows .NET Server 2003 family=20
b.. Windows XP Professional Edition=20
c.. Windows 2000 Datacenter Server=20
d.. Windows 2000 Advanced Server=20
e.. Windows NT 4.0 Enterprise Edition
Note: Windows 2000 Server still have the 2 GB Limit! =20
To enable your application to use the 3 GB address space, set the =
IMAGE_FILE_LARGE_ADDRESS_AWARE flag in the image header. The linker =
included with Microsoft Visual C++ supports the /LARGEADDRESSAWARE =
switch to set this flag. Setting this flag and then running the =
application on a system that does not have 4GT support should not affect =
the application.

Use the following guidelines when enabling 4GT support within your =
applications:


a.. For a DLL that loads near the 2 GB boundary, there is a region of =
the 2 GB space in which contiguous memory cannot be allocated using the =
VirtualAlloc function.=20
b.. Use the GlobalMemoryStatus function to retrieve the amount of =
total user virtual space. Avoid using hard-wired constant definitions =
such as "#define HIGHEST_USER_ADDRESS 0xC0000000". Try to detect the =
real value at runtime.=20
c.. Avoid signed comparisons with pointers as they may cause =
applications to crash on a 4GT-enabled system. A condition such as "if =
(pointer > 40000000)" is false for a pointer that is above 2 GB.=20
d.. Code that uses the highest bit to tag items (data value versus an =
address value) will fail. For example, a 32-bit word might be considered =
a user- mode address if below 0x80000000 and an error code if above. =
This is no longer true with 4GT.
Physical Address Extension

The Physical Address Extension (PAE) enables applications to address =
more than 4 GB of physical memory. It is supported by Intel processors. =
The following system can use PAE to take advantage of physical memory =
beyond 4 GB:



a.. Windows .NET Enterprise Server=20
b.. Windows .NET Advanced Server=20
c.. Windows 2000 Datacenter Server=20
d.. Windows 2000 Advanced Server
To enable PAE, you must use the /PAE switch in the Boot.ini file.

With PAE enabled, the operating system moves from two-level linear =
address translation to three-level address translation. The extra layer =
of translation provides access to physical memory beyond 4 GB. Instead =
of a linear address being split into three separate fields for indexing =
into memory tables, it is split into four separate fields; a 2-bit =
field, two 9-bit fields, and a 12-bit field that corresponds to the page =
size implemented by Intel Architecture (4 KB).

Typically, a process can access up to 2 GB of memory address space =
(assuming the /3GB switch was not used), with some of the memory being =
physical memory and some being virtual memory. The memory manager uses =
PAE to provide more physical memory to an application, which reduces the =
need to swap memory to the page file and increases performance. The =
application itself is not aware of the actual memory size. All of the =
memory management and allocation of the PAE memory is handled by the =
memory manager independently of the application.

Applications that are 4GT-aware are likely to remain in physical memory =
rather than be paged out, which increases their performance. The =
exception is when the /3GB switch is used in conjunction with the /PAE =
switch. In this case, the operating system does not use any memory in =
excess of 16 GB. Therefore, if the system restarts with the /3GB entry =
in the Boot.ini file, and the system has more than 16 GB of physical =
memory, the additional physical random access memory (RAM) is not used =
by the operating system. Restarting the computer without the /3GB switch =
enables the use of all of the physical memory.

Address Windowing Extensions (AWE) enables applications to address more =
than 4 GB. AWE enables an application to reserve physical memory as =
nonpaged memory, then dynamically map portions of the nonpaged memory to =
its working set. This enables memory-intensive programs to reserve large =
amounts of physical memory for data without swapping to disk. Instead, =
the data is swapped between the working set and reserved memory above =
the 4 GB range. The memory above 4 GB is exposed to the memory manager =
and the AWE functions by PAE. Without PAE, AWE is unable to reserve =
memory in excess of 4 GB.

Address Windowing Extensions

Address Windowing Extensions (AWE) is a set of extensions that allows an =
application to quickly manipulate physical memory greater than 4GB. =
Certain data-intensive applications, such as database management systems =
and scientific and engineering software, need access to very large =
caches of data. In the case of very large data sets, restricting the =
cache to fit within an application's 2GB of user address space is a =
severe restriction. In these situations, the cache is too small to =
properly support the application.


AWE solves this problem by allowing applications to directly address =
huge amounts of memory while continuing to use 32-bit pointers. AWE =
allows applications to have data caches larger than 4GB (where =
sufficient physical memory is present). AWE uses physical nonpaged =
memory and window views of various portions of this physical memory =
within a 32-bit virtual address space.

AWE places a few restrictions on how this memory may be used, primarily =
because these restrictions allow extremely fast mapping, remapping, and =
freeing. Fast memory management is important for these potentially =
enormous address spaces.


a.. Virtual address ranges allocated for the AWE are not sharable with =
other processes (and therefore not inheritable). In fact, two different =
AWE virtual addresses within the same process are not allowed to map the =
same physical page. These restrictions provide fast remapping and =
cleanup when memory is freed.=20
b.. The physical pages that can be allocated for an AWE region are =
limited by the number of physical pages present in the machine, since =
this memory is never paged - it is locked down until the application =
explicitly frees it or exits. The physical pages allocated for a given =
process can be mapped into any AWE virtual region within the same =
process. Applications that use AWE must be careful not to take so much =
physical memory that they cause other applications to page excessively =
or prevent creation of new processes or threads due to lack of =
resources. Use the GlobalMemoryStatusEx function to monitor physical =
memory use.=20
c.. AWE virtual addresses are always read/write and cannot be =
protected via calls to=20

------=_NextPart_000_003C_01C6BD71.943D7E90
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1252">
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT size=3D2>cmunoz wrote:<BR>&gt; Hi,<BR>&gt; I'm trying to find =
some=20
information on the effect of the /3GB switch<BR>&gt; on the .NET =
Framework CLR=20
memory limits.<BR>&gt; I'm executing some C# that is producing an =
out-of-memory=20
exception and<BR>&gt; it seems that the computer still has enough =
available=20
memory but it is<BR>&gt; not being used.<BR>&gt; I'm invoking the C# =
component=20
from a C++ application, so the latter is<BR>&gt; the owner of the=20
process.<BR>&gt; <BR>&gt; Thanks</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><SPAN class=3D375453818-13012003><FONT size=3D2>&nbsp;</FONT></DIV>
<H1><A name=3Dbase.4gt_ram_tuning></A><FONT size=3D2>4GT RAM =
Tuning</FONT></H1>
<P><FONT size=3D2></FONT></P>
<P><FONT size=3D2>For applications that are I/O-intensive, such as =
database=20
management systems (DBMS), the use of a larger virtual address space can =
provide=20
considerable performance benefits.</FONT></P>
<H4><FONT size=3D2></FONT></H4>
<P><FONT size=3D2></FONT>
<P><FONT size=3D2>Operating systems based on Microsoft(r) Windows NT(r) =
provide=20
applications with a 4 GB virtual address space. The virtual address =
space is=20
divided such that 2 GB is available to the application and the other 2 =
GB is=20
available only to the system. The 4GT RAM Tuning feature increases the =
memory=20
available to the application to 3 GB, and reduces the amount available =
to the=20
system to 1 GB. This benefits applications that run on computers with =
more than=20
2 GB of physical memory.</FONT></P>
<P><FONT size=3D2>To enable this feature, add the /3GB switch to the =
Boot.ini=20
file. This enables applications to use the first 3 GB of the address =
space on=20
the following systems:</FONT></P>
<P><FONT size=3D2></FONT></P>
<UL>
<LI><FONT size=3D2>Windows&nbsp;.NET Server&nbsp;2003 family </FONT>
<LI><FONT size=3D2>Windows XP Professional Edition </FONT>
<LI><FONT size=3D2>Windows 2000 Datacenter Server </FONT>
<LI><FONT size=3D2>Windows 2000 Advanced Server </FONT>
<LI><FONT size=3D2>Windows NT 4.0 Enterprise Edition</FONT></LI></UL>
<DIV><SPAN class=3D375453818-13012003><SPAN =
class=3D375453818-13012003><FONT=20
size=3D2>Note: Windows 2000 Server still have the 2 GB Limit!&nbsp;=20
</FONT></DIV></SPAN></SPAN>
<P><FONT size=3D2>To enable your application to use the 3 GB address =
space, set=20
the </FONT><A=20
href=3D"http://msdn.microsoft.com/library/en-us/debug/base/loaded_image_s=
tr.asp"><FONT=20
size=3D2>IMAGE_FILE_LARGE_ADDRESS_AWARE</FONT></A><FONT size=3D2> flag =
in the image=20
header. The linker included with Microsoft Visual C++ supports the=20
/LARGEADDRESSAWARE switch to set this flag. Setting this flag and then =
running=20
the application on a system that does not have 4GT support should not =
affect the=20
application.</FONT></P>
<P><FONT size=3D2>Use the following guidelines when enabling 4GT support =
within=20
your applications:</FONT></P>
<P><FONT size=3D2></FONT></P>
<UL>
<LI><FONT size=3D2>For a DLL that loads near the 2 GB boundary, there =
is a=20
region of the 2 GB space in which contiguous memory cannot be =
allocated using=20
the </FONT><A=20
=
href=3D"http://msdn.microsoft.com/library/en-us/memory/base/virtualalloc.=
asp"><FONT=20
size=3D2>VirtualAlloc</FONT></A><FONT size=3D2> function. </FONT>
<LI><FONT size=3D2>Use the </FONT><A=20
=
href=3D"http://msdn.microsoft.com/library/en-us/memory/base/globalmemorys=
tatus.asp"><FONT=20
size=3D2>GlobalMemoryStatus</FONT></A><FONT size=3D2> function to =
retrieve the=20
amount of total user virtual space. Avoid using hard-wired constant=20
definitions such as "#define HIGHEST_USER_ADDRESS 0xC0000000". Try to =
detect=20
the real value at runtime. </FONT>
<LI><FONT size=3D2>Avoid signed comparisons with pointers as they may =
cause=20
applications to crash on a 4GT-enabled system. A condition such as "if =

(pointer &gt; 40000000)" is false for a pointer that is above 2 GB. =
</FONT>
<LI><FONT size=3D2>Code that uses the highest bit to tag items (data =
value=20
versus an address value) will fail. For example, a 32-bit word might =
be=20
considered a user- mode address if below 0x80000000 and an error code =
if=20
above. This is no longer true with 4GT.</FONT></LI></UL>
<DIV><SPAN class=3D047295118-13012003>
<H1><A name=3Dbase.physical_address_extension></A><FONT =
size=3D2>Physical Address=20
Extension</FONT></H1>
<P><FONT size=3D2></FONT></P>
<P><FONT size=3D2>The Physical Address Extension (PAE) enables =
applications to=20
address more than 4 GB of physical memory. It is supported by Intel =
processors.=20
The following system can use PAE to take advantage of physical memory =
beyond 4=20
GB:</FONT></P>
<H4><FONT size=3D2></FONT></H4>
<P><FONT size=3D2></FONT>
<P><FONT size=3D2></FONT></P>
<UL>
<LI><FONT size=3D2>Windows&nbsp;.NET Enterprise Server </FONT>
<LI><FONT size=3D2>Windows&nbsp;.NET Advanced Server </FONT>
<LI><FONT size=3D2>Windows 2000 Datacenter Server </FONT>
<LI><FONT size=3D2>Windows 2000 Advanced Server</FONT></LI></UL>
<P><FONT size=3D2>To enable PAE, you must use the /PAE switch in the =
Boot.ini=20
file.</FONT></P>
<P><FONT size=3D2>With PAE enabled, the operating system moves from =
two-level=20
linear address translation to three-level address translation. The extra =
layer=20
of translation provides access to physical memory beyond 4 GB. Instead =
of a=20
linear address being split into three separate fields for indexing into =
memory=20
tables, it is split into four separate fields; a 2-bit field, two 9-bit =
fields,=20
and a 12-bit field that corresponds to the page size implemented by =
Intel=20
Architecture (4 KB).</FONT></P>
<P><FONT size=3D2>Typically, a process can access up to 2 GB of memory =
address=20
space (assuming the /3GB switch was not used), with some of the memory =
being=20
physical memory and some being virtual memory. The memory manager uses =
PAE to=20
provide more physical memory to an application, which reduces the need =
to swap=20
memory to the page file and increases performance. The application =
itself is not=20
aware of the actual memory size. All of the memory management and =
allocation of=20
the PAE memory is handled by the memory manager independently of the=20
application.</FONT></P>
<P><FONT size=3D2>Applications that are 4GT-aware are likely to remain =
in physical=20
memory rather than be paged out, which increases their performance. The=20
exception is when the /3GB switch is used in conjunction with the /PAE =
switch.=20
In this case, the operating system does not use any memory in excess of =
16 GB.=20
Therefore, if the system restarts with the /3GB entry in the Boot.ini =
file, and=20
the system has more than 16 GB of physical memory, the additional =
physical=20
random access memory (RAM) is not used by the operating system. =
Restarting the=20
computer without the /3GB switch enables the use of all of the physical=20
memory.</FONT></P>
<P><A=20
href=3D"http://msdn.microsoft.com/library/en-us/memory/base/address_windo=
wing_extensions.asp"><FONT=20
size=3D2>Address Windowing Extensions</FONT></A><FONT size=3D2> (AWE) =
enables=20
applications to address more than 4 GB. AWE enables an application to =
reserve=20
physical memory as nonpaged memory, then dynamically map portions of the =

nonpaged memory to its working set. This enables memory-intensive =
programs to=20
reserve large amounts of physical memory for data without swapping to =
disk.=20
Instead, the data is swapped between the working set and reserved memory =
above=20
the 4 GB range. The memory above 4 GB is exposed to the memory manager =
and the=20
AWE functions by PAE. Without PAE, AWE is unable to reserve memory in =
excess of=20
4 GB.</FONT></P>
<H1><A name=3Dbase.address_windowing_extensions></A><FONT =
size=3D2>Address Windowing=20
Extensions</FONT></H1>
<P><FONT size=3D2></FONT></P>
<P><FONT size=3D2>Address Windowing Extensions (AWE) is a set of =
extensions that=20
allows an application to quickly manipulate physical memory greater than =
4GB.=20
Certain data-intensive applications, such as database management systems =
and=20
scientific and engineering software, need access to very large caches of =
data.=20
In the case of very large data sets, restricting the cache to fit within =
an=20
application's 2GB of user address space is a severe restriction. In =
these=20
situations, the cache is too small to properly support the=20
application.</FONT></P>
<H4><FONT size=3D2></FONT></H4>
<P><FONT size=3D2></FONT>
<P><FONT size=3D2>AWE solves this problem by allowing applications to =
directly=20
address huge amounts of memory while continuing to use 32-bit pointers. =
AWE=20
allows applications to have data caches larger than 4GB (where =
sufficient=20
physical memory is present). AWE uses physical nonpaged memory and =
window views=20
of various portions of this physical memory within a 32-bit virtual =
address=20
space.</FONT></P>
<P><FONT size=3D2>AWE places a few restrictions on how this memory may =
be used,=20
primarily because these restrictions allow extremely fast mapping, =
remapping,=20
and freeing. Fast memory management is important for these potentially =
enormous=20
address spaces.</FONT></P>
<P><FONT size=3D2></FONT></P>
<UL>
<LI><FONT size=3D2>Virtual address ranges allocated for the AWE are =
not sharable=20
with other processes (and therefore not inheritable). In fact, two =
different=20
AWE virtual addresses within the same process are not allowed to map =
the same=20
physical page. These restrictions provide fast remapping and cleanup =
when=20
memory is freed. </FONT>
<LI><FONT size=3D2>The physical pages that can be allocated for an AWE =
region=20
are limited by the number of physical pages present in the machine, =
since this=20
memory is never paged - it is locked down until the application =
explicitly=20
frees it or exits. The physical pages allocated for a given process =
can be=20
mapped into any AWE virtual region within the same process. =
Applications that=20
use AWE must be careful not to take so much physical memory that they =
cause=20
other applications to page excessively or prevent creation of new =
processes or=20
threads due to lack of resources. Use the </FONT><A=20
=
href=3D"http://msdn.microsoft.com/library/en-us/memory/base/globalmemorys=
tatusex.asp"><FONT=20
size=3D2>GlobalMemoryStatusEx</FONT></A><FONT size=3D2> function to =
monitor=20
physical memory use. </FONT>
<LI><FONT size=3D2>AWE virtual addresses are always read/write and =
cannot be=20
protected via calls to </FONT></LI></UL>
<DIV><A=20
href=3D"http://msdn.microsoft.com/library/en-us/memory/base/virtualprotec=
t.asp"><FONT=20
size=3D2></FONT></A>&nbsp;</DIV></SPAN></DIV></SPAN></BODY></HTML>

------=_NextPart_000_003C_01C6BD71.943D7E90--


.



Relevant Pages

  • Re: RAM
    ... For applications that are I/O-intensive, ... The 4GT RAM Tuning feature increases the memory ... more than 2 GB of physical memory. ... VirtualAlloc function. ...
    (alt.os.windows-xp)
  • Re: 4GB Physical Memory Support
    ... Whether or not 4GB of physical memory is necessary is a moot point, the question remains why changing the page file size altered the amount of physical memory recognized by Windows. ... However, keep in mind that the PCI Hole exists as a result of addressing done by the BIOS, not by Windows. ...
    (microsoft.public.windowsxp.hardware)
  • Re: OS-question
    ... MacOS X supports>4GB of RAM on IA32 and so does FreeBSD but I don't know ... Linux can use up to 64 Gigabytes of physical memory on x86 systems. ... If you are compiling a kernel which will never run on a machine with ...
    (comp.arch)
  • Re: [SLE] 32-bit machines hit physical RAM limit at 4GB?
    ... works by mapping physical memory outside of the normal addressing ... An application has to be able to tell the operating system what ... system and your applications will run fine. ...
    (SuSE)
  • Re: Fork bombing a Linux machine as a non-root user
    ... It is past time for the linux enthusiats touting linux as more ... systems limited resources (CPU time, physical memory, and so on). ...
    (Fedora)