OS2 World Community Forum
OS/2, eCS & ArcaOS - Technical => Applications => Topic started by: Doug Clark on September 25, 2018, 06:43:44 pm
-
I have read that the AOS RAM disk uses memory above the 4 MB limit - meaning on a 8 MB machine I could assign 4MB to a ram disk and not impact any OS/2 applications or the operating system itself.
Yet the Low and High memory check boxes and available amounts don't seem to indicate that is true.
Does anyone know where RAM disk takes memory? And it it does use memory about the 4 MB limit, how does it do that?
-
I always thought, it is a 4 GB, not 4 MB limit. Am I not right?
-
Yes Valery, you are correct. My mistake. 4 GB limit.
-
Feel free to correct me if I am wrong. I believe one needs the OS/4 kernel and the QSINIT loader to utilized RAM above 4 GB.
-
Feel free to correct me if I am wrong. I believe one needs the OS/4 kernel and the QSINIT loader to utilized RAM above 4 GB.
OS/4 kernel (and emsFS.ifs) _OR_ the QSINIT (and some .ADD driver)
-
I always thought, it is a 4 GB, not 4 MB limit. Am I not right?
You may not be right indeed: https://en.wikipedia.org/wiki/Gibibyte (https://en.wikipedia.org/wiki/Gibibyte)... :P
-
Does anyone know where RAM disk takes memory? And it it does use memory about the 4 GB limit, how does it do that?
According to Arca Noae's Section 6.4.3 of README (https://www.arcanoae.com/wp-content/uploads/wiki/ReadMe-ArcaOS-2.txt)
6.4.3 RAM Disk
The new kernel supports a RAM disk (portion of memory which acts like a
physical disk and is assigned a drive letter). This RAM disk may be configured
to use memory above the 4GB boundary, normally limiting 32-bit operating
systems. Thus, on newer systems with large amounts of memory (8, 16, 24, 32, or
even 64GB), the space above 4GB may be configured for use as a RAM disk.
Arca Noae provides a utility for configuring up to two such RAM disks. The RAM
Disk applet located in the System Setup folder provides guidance and
configuration of such memory constructs.
32-bit x86-based CPUs are able to access up to 64 GB of RAM per physical core using something called Physical Address Extensions (PAE) allowing extra information in the paging table for 36-bits of physical address space rather than just 32-bits. Each physical process still only accesses 4 GB of virtual addresses, but they can be mapped anywhere in the 64 GB supported.
-
Each physical process still only accesses 4 GB of virtual addresses
Not anymore, see the previous link to Wikipedia.
-
Each physical process still only accesses 4 GB of virtual addresses
Not anymore, see the previous link to Wikipedia.
Do you mean it should be 4 GiB?
-
Feel free to correct me if I am wrong. I believe one needs the OS/4 kernel and the QSINIT loader to utilized RAM above 4 GB.
ArcaOS comes with a modified QSINIT as os2ldr, which helps with memory holes that the IBM os2ldr can't handle and gives access to the high memory through PAE.
-
I have read that the AOS RAM disk uses memory above the 4 MB limit - meaning on a 8 MB machine I could assign 4MB to a ram disk and not impact any OS/2 applications or the operating system itself.
Yet the Low and High memory check boxes and available amounts don't seem to indicate that is true.
Does anyone know where RAM disk takes memory? And it it does use memory about the 4 MB limit, how does it do that?
I found that I had to enable some BIOS setting here before I could access the high memory. I forget the exact one but it wasn't obviously related, might have been the VTx for virtual machines.
It is actually memory above about 3.5 GB, depending on MB. Currently with 4GB of ram, I have 768 MBs that are only usable as a ram disk. It is also possible to use lower memory in the ram disk as well.
Make sure you enable it and reboot so it can figure out your memory as well.
-
Feel free to correct me if I am wrong. I believe one needs the OS/4 kernel and the QSINIT loader to utilized RAM above 4 GB.
ArcaOS comes with a modified QSINIT as os2ldr, which helps with memory holes that the IBM os2ldr can't handle and gives access to the high memory through PAE.
I have 16GiB and 12GiB ram are used as RAM disk
-
I guess I am confused by the Ram Disk setup screen. I am using AOS
The screen shows two check boxes, with available memory next to them.
One check box says Low memory.
The other says High memory.
My laptop has 8 GB of RAM.
If "low memory" means everything below the 4 GB boundary, and "high memory" means above the 4GB boundary, then the available memory shown next to the "high memory" check box should show 4 GBs.
If the "low memory" check box means conventional memory, and "high memory" means the memory between conventional and 4GB, then how do you select the memory above 4GB
Do anyone know how the Ram Disk setup thingy work?
-
OK to answer my own question - based in the Ram Disk Memory Limits dialog
The low memory check box must mean all memory below 4gb
The high memory check box must mean all memory above 4gb
Something (BIOS video memory?) must be reserving a chunk of below 4GB memory, i.e. "low memory"
No matter what you do to the check boxes, the next time you open the Ram Disk setup thingy, both check boxes are checked. So the only way to know or check where the Ram Disk is being created is with a memory analyzer, or to look at os2ldr.cfg
Thanks guys for the answer about PAE.
I guess this means, in theory, it is possible for some of those memory hungry applications (FireFox, vBox) to also use memory above 4GB?
-
It's still weird that you only show having 56 MB's of low available. Here I have 3250MB's low available and 768 MB high memory, which is close to your 848MB's. Why the memory above 4GB isn't showing I don't know, probably something to do with your BIOS. I take it that other operating systems see close to 8GB's?
About the 4 GB's. While the 32 bit x86 can access 4 GB's, some of it is mapped into the system hardware space, PCI cards, video memory and such claim address at the top of the 4GBs address space, in your case 848MBs. The low memory should show the rest of the 4GBs. All I can think of is an address hole (common on newer systems) low down in memory that is confusing HiDisk.
Note also that you can use low memory for the ram disk as well but then OS/2 can't use it.
Unluckily, without a lot more work, which will probably never happen, Firefox etc still can't use the high memory. You can put things like %TEMP% on the ram disk which will speed things up, and it is self cleaning. You can put the swap file there too and in theory run a bunch of processes that use lots of memory and it would swap. In practice, IBM seems to have used 32 bit variables in too many places for this to work.
-
You can put the swap file there too and in theory run a bunch of processes that use lots of memory and it would swap. In practice, IBM seems to have used 32 bit variables in too many places for this to work.
I put my swapper.dat on the RAM disk just so that it wasn't writing to the SSD drive every boot but given we can't use over 4G I don't see how the swapper could ever be used.
-
What happens if you start up 5 processes that each use a GB of memory?
In theory you should just get some swapping but as I mentioned, OS/2 seems to use 32 bit variables that limit the size of virtual memory. The swap file itself is limited by using signed 32 bit based on what happens if you grow it more then 2GB (same thing as if you run out of disk space) based on experience. It makes sense as all file systems had a 2GB file limit before JFS.
The i386 is quite capable of handling 16 TB of virtual memory IIRC, but only 4 GB of address space
-
I always thought, it is a 4 GB, not 4 MB limit. Am I not right?
You may not be right indeed: https://en.wikipedia.org/wiki/Gibibyte (https://en.wikipedia.org/wiki/Gibibyte)... :P
I don't use term "GibiByte". It is not "real" term. I use only real term "GigaByte". 1000 MB is not a gigabyte. Gigabyte was always 1024 Megabytes.