RAM problems

Discussion in 'Computer Information' started by Robert Baer, Dec 18, 2003.

  1. Robert Baer

    Robert Baer Guest

    OS: Win2K, RAM: 3Gbytes in motherboard, OS reports 3Gbytes total
    physical memory and 2Gbytes available physical memory (those are the
    words it uses).
    As far as either PiFast or FILEMULT are concerned, most of the 2Gbytes
    of "available physical memory" can be allocated and used by the program
    running (no other program running.
    Using the task manager, i can see how much space the program takes
    before it allocates arrays for multi-million digit calculations.
    I can also see the space taken by the system, so i can easily
    calculate the (approximate) maximum RAM spave available to use for
    arrays inmy FILEMULT or to (indirectly) tell PiFast to allocate.
    In my FILEMULT program, i (for debugging and RAM vs VRAM probing) have
    been able to programatically determine how much physical RAM is
    available for arrays.
    In DOS, the DOS4GW extender does not allow a lot of space, but it is
    far better than grunging with only the TPA in the 640K.

    In Win95, Win98m Win98SE, Win2K, WinME and WinNT (and most likely in
    WinXP), the OS seems to extend the extender, and i can use all of the
    available RAM.

    In Win2K, the total RAM space taken by the OS, by the program (PiFast
    or FILEMULT), and the arrays used by the program can total to something
    close (but less than) to 2Gbytes.
    Any attempt to try for a total space greater than 2Gbytes causes
    PiFast to crash, and FILEMULT then uses VRAM (ie: disk sloshing).
    The VRAM business with FILEMULT apparently is due to the DOS4GW and
    the OS interaction.

    In any event, if i use Win2K, either PiFast or FILEMULT can use almost
    2Gbytes of RAM, which operational fact seems to negate your last
    statement.
    You are welcome to test this; PiFast is easily available, and runs at
    a DOS (or CMD) prompt.
    PiFast does not seem to use DOS4GW; it was written in C, and may use
    "automatic" memory extenders from the language package he bought - or
    something else (i have no clue).

    .......
    So, do you have any suggestions how to make all 3Gbytes of physical
    memory "available" for Win2K?
    ****
    Also, how do i solve the video problem in Win98?
     
    Robert Baer, Dec 23, 2003
    #21
    1. Advertisements

  2. Robert Baer

    DeMoN LaG Guest

    You are not quite catching the concept that all 3 GB is available. Try
    running both of your programs at once and see if they can use a total > 2
    Gigs
    Either limit the max RAM the OS can use or limit the max that the VCache
    can use, as was posted at least twice already.

    --
    AIM: FrznFoodClerk
    email: [email protected]_cast.net (_ = m)
    website: under construction
    Need a technician in the south Jersey area?
    email/IM for rates/services
     
    DeMoN LaG, Dec 23, 2003
    #22
    1. Advertisements

  3. Robert Baer

    Robert Baer Guest

    RE: Win98SE, the only workable MSconfig Advanced Limit Memory To range
    is 968 to 999 MB.
    Concerning VCache, i cannot find any entry that is accepted by
    MSconfig - meaning the entries are ignred.
    I tried the "suggested" MinFileCache=<anything> and
    MaxFileCache=<anything> and it makes zero difference as to what values
    are used.
    Now if you know of some other entry that *will* work, please let me
    know.
    So far,the only way to prevent the "problem with your display setup"
    error message, is to use MSconfig to force 640x480x16 VGA mode.
    I have been unable to get Win98SE to work with the video card and
    driver, if 2Gbytes or 3Gbytes of RAM is in the motherboard.
    Remember, the Device Manager indicates no problems.
    *********
    RE: Win2K....
    .....Well, i must apologize; i found an order for those three 1Gbyte
    sticks that "sort of" works.
    With the proper order, Win2K Computer Management reports: Total
    Physical Memory 3,145,268KB; Available Physical Memory
    2,908,968KB.
    So more than 2Gbytes is available for program use.
    However, PiFast can only use 1,946,948KB (total prog & arrays)
    according to Win2K Task Manager.
    Win2K Computer Management then reports 966,304KB available.
    So, that program is a bit short of using 2Gbytes....
    Have not tried any of my DOS4GW programs yet, but it does seem that
    2Gbytes may well be the practical program useage limit.
     
    Robert Baer, Dec 23, 2003
    #23
  4. Robert Baer

    DeMoN LaG Guest

    For a 32 bit application running under win32 without the use of PAE or
    other tricks, it can only use 2 GB of physical RAM at max.

    --
    AIM: FrznFoodClerk
    email: [email protected]_cast.net (_ = m)
    website: under construction
    Need a technician in the south Jersey area?
    email/IM for rates/services
     
    DeMoN LaG, Dec 23, 2003
    #24
  5. Robert Baer

    Robert Baer Guest

    I think that is the case for Win2K as well.
    Please be kind to enlighten me: what is PAE and what "other tricks"
    could i use?
     
    Robert Baer, Dec 24, 2003
    #25
  6. Robert Baer

    DeMoN LaG Guest

    PAE is Page Address Extensions, something Intel invented to make more
    memory available on 32 bit processors. It makes a sliding window, if you
    will, that lets a processor address 36 bits of address space instead of 32
    bits. The only problem is that it is slow as dirt doing it. As far as I
    know, PAE is only supported on the Intel XEON line of processors.

    I don't know any tricks to get a 32 bit program to get more than 2 GB of
    RAM though. The way I understand Win32 programming is that each
    application that is run gets it's own 4 GB of linear address space, which
    Windows can map to RAM or the page file as needed. Windows itself,
    however, will only allocate 2 GB of RAM per application, no matter how much
    RAM is in the system. I just dug up an MSDN article:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-
    us/dngenlib/html/awewindata.asp
    (watch the wrap).

    Basically from the first few paragraphs, each application sees 4 GB of
    address space, and can allocate 2 GB of it, unless you have NT4.0
    enterprise edition or Win2k Advanced server, then the programs can allocate
    3 GB.

    Complex, yes.

    --
    AIM: FrznFoodClerk
    email: [email protected]_cast.net (_ = m)
    website: under construction
    Need a technician in the south Jersey area?
    email/IM for rates/services
     
    DeMoN LaG, Dec 24, 2003
    #26
  7. Robert Baer

    Robert Baer Guest

    Boy, they sure lie:
    "The Microsoft Windows NT operating system has always provided
    applications with a flat 32-bit virtual address space that describes 4
    gigabytes (GB) of virtual memory. The address space is usually split so
    that 2 GB of address space is directly accessible to the application,
    and the other 2 GB is only accessible to the Windows 2000 executive
    software."

    In the first breath, they say they "always" have provided 4Gbytes of
    space for programs.
    Then in the very next breath they contradict themselves and say only
    2Gbytes of space is for programs.
    Furthermore, my testing shows that the most one can squeeze out of
    Win98SE is (a little less than) 1Gbyte of space (by cheating on the
    video and loading over 1Gbyte of RAM).
    Just goes to show how we "love" M$!!!

    And....i have found a more serious problem: my FORTRAN compiler will
    not allow me to allocate more than 805,240,7xx bytes under Win2K
    (1Gbytes or 3Gbytes of RAM) or more than 1,006,956,4xx bytes under
    win98SE (1Gbytes of RAM) or more than 1,007,525,8xx bytes under win98SE
    (1Gbytes of RAM).
    The "xx" is to allow for the granularity of my testing.
    And this amount is not related to the use of DOS4GW; i tried with a
    straight NT compile and found no difference (the compiler allows DOS 16
    or 32 bit, OS/2 or Win?? targets).

    So...i guess i am reduced to the possibility(??) of an "override" DOS
    32-bit compile with an extender that allows the full 4Gbytes, along with
    a compiler that also allows the same.
    Presuming that such a compile is possible, would it actually
    "override" the damn OS or not?
     
    Robert Baer, Dec 26, 2003
    #27
  8. Robert Baer

    derek / nul Guest

    It cannot override the OS, only 2Gb is usable by applications.
     
    derek / nul, Dec 26, 2003
    #28
  9. Robert Baer

    DeMoN LaG Guest

    No matter what compiler you use, the OS is what still fulfills the memory
    request. If the OS will not allow you to allocate more than 1 gig of RAM
    for the application, then you will not be able to do it no matter what
    compiler you use. Unless the compiler you use now is just crap and is
    compiling code to crappy executables and that is why you can only allocate
    2 GB total.

    --
    AIM: FrznFoodClerk
    email: [email protected]_cast.net (_ = m)
    website: under construction
    Need a technician in the south Jersey area?
    email/IM for rates/services
     
    DeMoN LaG, Dec 26, 2003
    #29
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.