Hi, On Fri, Mar 9, 2018 at 8:23 AM, Eric Auer <e.a...@jpberlin.de> wrote: > > I compiled my program with DJGPP and let it collect > large amounts of data in RAM (2 GB would be easy) > and only used file I/O in periods which had relaxed > timing constraints. Because as said above, when you > (or your C library) ask the DOS kernel to do stuff, > you will have 0% CPU time until DOS stuff is done. > > By the way, DJGPP only supports 4 GB address space > and you have to subtract graphics and other MMIO > areas, so do not expect to have 3.5 or 64 GB heap!
DJGPP since v2 has been DPMI only. Typically, that means CWSDPMI, but there are also others, of course (e.g. PMODE/DJ or HDPMI32). While CWSDPMI does support virtual memory, I'm honestly not sure how bug-free that is on higher-memory systems. Some things don't work as well due to 4 MB pages (although that is a big improvement in various ways). You can use CWSPARAM to disable 4 MB pages, but it will be slower, and using too many 4 kb pages might overflow in low memory on 512+ MB systems (which are common nowadays). Similarly, I think CWS told me that DJGPP assumes a 2 GB address space, so you'll have to call sbrk() twice (manually) if you want to allocate more than 2 GB at a time. IIRC, he promised to help others use PAE (64 GB), if needed, but nobody ever cared. Some other DOS extenders support large amounts of RAM, but some obscure ones have bugs. Causeway (CWSTUB) from OpenWatcom seems to work well and has (albeit less efficient) virtual memory support, too. There's also others like DOS/32A (ring 3?) and WDOSX (ring 0), but they don't support virtual memory, AFAIK. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user